S3 sendet keine Ungültigkeitsinformationen an CloudFront. Standardmäßig speichert CloudFront Informationen bis zu der maximalen Zeit, die von den Cache Control-Headern angegeben wird, die beim Abrufen der Daten vom Ursprung festgelegt wurden (möglicherweise werden Elemente aus dem Cache früher entfernt, wenn es sich anfühlt).
Sie können Cache-Einträge ungültig machen, indem Sie einen Invalidierungs-Batch erstellen. Dies kostet Sie Geld: Die ersten 1000 Anfragen pro Monat sind kostenlos, aber darüber hinaus kostet es 0,005 pro Anfrage - wenn Sie 1000 Dateien pro Tag ungültig machen würden, würden Sie 150 pro Monat kosten (es sei denn, Sie können die Platzhalterfunktion nutzen). Sie können dies natürlich als Reaktion auf ein s3-Ereignis mit einer Amazon Lambda-Funktion auslösen.
Ein anderer Ansatz besteht darin, einen anderen Pfad zu verwenden, wenn sich das Objekt ändert (in Wirklichkeit ein generativer Cache-Schlüssel). In ähnlicher Weise könnten Sie einen Abfrageparameter an die URL anhängen und diesen Abfrageparameter ändern, wenn Cloudfront eine neue Kopie abrufen soll (dazu müssen Sie CloudFront mitteilen, dass sie Abfragezeichenfolgenparameter verwenden soll - standardmäßig ignoriert sie diese).
Eine weitere Möglichkeit, wenn Sie nur selten (aber große) Änderungen vornehmen, besteht darin, einfach eine neue Cloudfront-Verteilung zu erstellen.
Ich hatte ein schreckliches Gefühl, das war der Fall. Es scheint, als hätten sie ein Feature verpasst. Kannst du eine Referenz dafür angeben oder ist es einfach nicht spezifiziert? Vielen Dank. – Joe
Es wäre eine fehlerhafte Annahme, dass das Hochladen einer neuen Version auf S3 bedeutet, dass Sie den Cache in CloudFront löschen möchten. Ja, das mag das Verhalten sein, nach dem Sie suchen, aber es wäre vermessen von AWS, _assume_, dass dies das ist, was Sie wollen. In vielen Fällen cache ich Inhalte in CloudFront mit der Gewissheit, dass sie gemäß meinen Einstellungen ablaufen werden, und aktualisiere Inhalte in S3 im Voraus. In meinem Fall ist automatische Entwertung das Gegenteil von dem, was ich will. –
Nicht vorausgesetzt, aber es scheint wie ein nützlicher Parameter zu haben. – Joe