Warum stellt CloudFront veraltete Inhalte von Amazon S3 bereit?

Lesedauer: 4 Minute
0

Ich verwende Amazon CloudFront, um in Amazon Simple Storage Service (Amazon S3) gespeicherte Objekte bereitzustellen. Ich habe meine Objekte in Amazon S3 aktualisiert, meine CloudFront-Distribution stellt jedoch immer noch die vorherigen Versionen dieser Dateien bereit.

Kurzbeschreibung

Standardmäßig speichert CloudFront eine Antwort von Amazon S3 24 Stunden lang im Cache (Standard-TTL von 86.400 Sekunden). Wenn Ihre Anfrage an einem Edge-Standort landet, der die Amazon S3-Antwort innerhalb von 24 Stunden bereitgestellt hat, verwendet CloudFront die zwischengespeicherte Antwort. Dies passiert auch dann, wenn Sie den Inhalt in Amazon S3 aktualisiert haben.

Verwenden Sie eine der folgenden Methoden, um die aktualisierten Amazon S3-Inhalte von CloudFront zu übertragen:

Lösung

Die Amazon S3-Objekte für ungültig erklären

Sie können ein Amazon S3-Objekt ungültig machen, um es aus dem Cache der CloudFront-Distribution zu entfernen. Nachdem das Objekt aus dem Cache entfernt wurde, ruft die nächste Anfrage das Objekt direkt von Amazon S3 ab.

Bevor Sie diesen Prozess ausführen, sollten Sie Folgendes beachten:

  • Sie können bestimmte Versionen eines Objekts, das Cookies oder Header verwendet, um die Antwort zu variieren, nicht ungültig machen. CloudFront macht in diesem Fall alle Versionen des Objekts ungültig.
  • Jedem AWS-Konto stehen 1.000 kostenlose Invalidierungspfade pro Monat zur Verfügung. Weitere Informationen finden Sie unter Amazon CloudFront-Preise.

Wenn Sie eine Invalidierung erstellen, stellen Sie sicher, dass die Objektpfade die folgenden Anforderungen erfüllen:

  • Die Objektpfade müssen für einzelne Objekte gelten oder die Pfade müssen mit dem Platzhalterzeichen (*) enden. Sie können beispielsweise keine Invalidierung für einen Pfad ausführen, der /images/*.jpeg ähnelt, da der Pfad nicht für ein einzelnes Objekt gilt und er nicht mit einem Platzhalter endet.
  • Der angegebene Pfad muss genau mit der Groß- und Kleinschreibung des Pfads des Objekts übereinstimmen. Bei Invalidierungsanfragen wird zwischen Groß- und Kleinschreibung unterschieden.
  • Um bestimmte Versionen eines Objekts zu entfernen, die auf einer Abfragezeichenfolge basieren, fügen Sie QueryString in den Invalidierungspfad ein.

Der Abschluss von Objekt-Invalidierungen nimmt in der Regel 10 bis 100 Sekunden in Anspruch. Sie können den Status einer Invalidierung überprüfen, indem Sie Ihre Distribution von der CloudFront-Konsole aus aufrufen.

Objekt-Versionsverwaltung verwenden

Wenn Sie Inhalte häufig aktualisieren, empfiehlt es sich, den Cache der CloudFront-Distribution mithilfe der Objekt-Versionsverwaltung zu leeren. Bei häufigen Cache-Aktualisierungen kostet die Verwendung der Objekt-Versionsverwaltung möglicherweise weniger als die Verwendung von Invalidierungen.

Verwenden Sie eine der folgenden Methoden, um Ihren Objekten eine Versionsverwaltung hinzuzufügen:

  • Speichern Sie neue Versionen des Objekts am Ursprung mit der Versionsnummer im Schlüsselnamen. Wenn Sie beispielsweise /image_v1.png aktualisieren, speichern Sie eine neue Version des Objekts als /image_v2.png.
  • Aktualisieren Sie das Objekt am Ursprung, speichern Sie es jedoch auf der Grundlage einer Abfragezeichenfolge mit der Objektversion. Beispielsweise wird die Abfragezeichenfolge von /image.png?ver=1 zu /image.png?ver=2 aktualisiert. Sie können eine Cache-Richtlinie verwenden, um festzulegen, welche Abfragezeichenfolgen in den Cacheschlüssel- und Ursprungsanfragen enthalten sind.
    Hinweis: Sie können weiterhin die vorherige Version anfordern (/image.png? ver=1), solange diese im CloudFront-Cache verfügbar ist.

Beachten Sie die folgenden Vor- und Nachteile der einzelnen Methoden der Objekt-Versionsverwaltung:

  • Wenn Sie neue Versionen des Objekts am Ursprung (Amazon S3) speichern, können Sie Änderungen an früheren Versionen rückgängig machen, die noch unter den vorherigen Namen verfügbar sind. Das Speichern mehrerer Versionen eines Objekts kann jedoch Ihre Speicherkosten erhöhen.
  • Durch die Aktualisierung des Objekts am Ursprung, jedoch Zwischenspeichern auf der Grundlage der Abfragezeichenfolge können Sie Ihre Speicherkosten senken. Um sich auf Rollbacks vorzubereiten, empfiehlt es sich jedoch, frühere Objektversionen offline zu halten.

Hinweis: Die Angabe von versionierten Dateinamen oder Verzeichnisnamen hat nichts mit der Amazon S3-Objekt-Versionsverwaltung zu tun. Durch die Verwendung der Amazon S3-Versionsverwaltungsfunktion werden die Inhalte nicht automatisch aktualisiert. Sie müssen die Dateipfade sorgfältig festlegen, da Sie eine Invalidierungsanfrage nicht stornieren können, nachdem Sie sie gestartet haben.

Ähnliche Informationen

Verwaltung der Verweildauer von Inhalten im Cache (Ablauf)

Weiterleitung und Zwischenspeicherung von Abfragezeichenfolgen

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr