Direkt zum Inhalt

Wie behebe ich den Fehler „TooManyInvalidationsInProgress“ für CloudFront-Invalidierungsanfragen?

Lesedauer: 2 Minute
0

Ich habe versucht, Dateien für meine Amazon CloudFront-Distribution ungültig zu machen, um Inhalte zu entfernen, und habe die Fehlermeldung „TooManyInvalidationsInProgress“ erhalten.

Kurzbeschreibung

Für einzelne Dateien kannst du für jede Distribution bis zu 3000 Invalidierungsanfragen stellen.

Wenn du dieses Kontingent überschreitest, wird möglicherweise eine Fehlermeldung angezeigt, die der folgenden ähnelt:

„An error occurred (TooManyInvalidationsInProgress) when calling the CreateInvalidation operation: Processing your request will cause you to exceed the maximum number of in-progress invalidations.“

Um dieses Problem zu lösen, verwende versionierte Dateinamen oder Platzhalter, kontrolliere die Cache-Dateidauer oder implementiere einen Wiederholungsmechanismus mit exponentiellem Backoff.

Lösung

Versionierte Dateinamen verwenden

Wenn du deine Dateien aus deiner Distribution häufig aktualisierst, empfiehlt es sich, versionierte Dateinamen zu verwenden. Versionierte Dateien ermöglichen dir eine bessere Kontrolle über übermäßig gecachte Dateien und sind kostengünstiger als die Invalidierung von Dateien. Weitere Informationen findest du unter Wähle zwischen der Invalidierung von Dateien und der Verwendung versionierter Dateinamen.

Platzhalter verwenden

Du kannst Platzhalter im Invalidierungspfad verwenden, wobei maximal 15 Invalidierungspfade gleichzeitig ohne Dateikontingente ausgeführt werden können. Du musst den Platzhalter (*) am Ende des Invalidierungspfads platzieren, z. B. /images/image.jpg*.

Steuern, wie lange CloudFront Dateien zwischenspeichert

Du kannst die Konfiguration auf dem Ursprung oder der Distribution ändern, um festzulegen, wie lange CloudFront Objekte zwischenspeichert. Es hat sich bewährt, eine Cache-Richtlinie und eine Richtlinie für Ursprungsanfragen zu verwenden, um den Cache-Schlüssel und die Quellanforderungen zu steuern.

Wenn du deine Inhalte nicht zwischenspeichern musst, verwende die CachingDisabled-Richtlinie, um das Caching zu deaktivieren. Weitere Informationen findest du unter Wie ändere ich meine Konfigurationen, damit CloudFront bestimmte Dateien nicht zwischenspeichert?

Wiederholungsmechanismus mit exponentiellem Backoff implementieren

Es hat sich bewährt, Wiederholungslogik in den Anwendungen einzubauen, um Anfragen, die einen Fehler zurückgeben, erneut zu versuchen. Alle AWS-SDKs verfügen über einen integrierten Wiederholungsmechanismus mit einem Algorithmus, der exponentiellen Backoff verwendet. Der Algorithmus implementiert immer längere Wartezeiten zwischen Wiederholungsversuchen für aufeinanderfolgende Fehlerantworten. Viele exponentielle Backoff-Algorithmen verwenden Jitter, um aufeinanderfolgende Kollisionen zu verhindern. Weitere Informationen findest du unter Verhalten bei Wiederholungen.

Informationen zur Beziehung

Was du für die Invalidierung von Dateien wissen musst

Kontingente für Invalidierungen

CreateInvalidation

AWS OFFICIALAktualisiert vor 3 Monaten