Passer au contenu

Comment résoudre l'erreur « TooManyInvalidationsInProgress » pour les demandes d'invalidation CloudFront ?

Lecture de 3 minute(s)
0

J'ai essayé d'invalider des fichiers pour ma distribution Amazon CloudFront afin de supprimer du contenu et j'ai reçu le message d'erreur « TooManyInvalidationsInProgress ».

Brève description

Pour des fichiers individuels, vous pouvez effectuer jusqu'à 3 000 demandes d'invalidation pour chaque distribution.

Si vous dépassez ce quota, un message d'erreur similaire au suivant peut s’afficher :

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

Pour résoudre ce problème, utilisez des noms de fichiers à versions gérées ou des caractères génériques, contrôlez la durée du fichier cache ou implémentez un mécanisme de nouvelle tentative avec backoff exponentiel.

Résolution

Utiliser des noms de fichiers à versions gérées

Si vous mettez fréquemment à jour vos fichiers depuis votre distribution, il est recommandé d'utiliser des noms de fichiers à versions gérées. Les fichiers à versions gérées vous permettent de mieux contrôler les fichiers sur-cachés et sont moins coûteux que l'invalidation de fichiers. Pour plus d'informations, consultez la section Choisir entre l’invalidation de fichiers et l’utilisation de noms de fichiers à versions gérées.

Utiliser des caractères génériques

Vous pouvez utiliser des caractères génériques dans le chemin d’invalidation avec un maximum de 15 chemins d'invalidation en cours en même temps, sans quotas de fichiers. Vous devez placer le caractère générique (*) à la fin du chemin d'invalidation, tel que /images/image.jpg*.

Contrôler la durée de mise en cache de fichiers par CloudFront

Vous pouvez modifier la configuration de l'origine ou de la distribution pour spécifier la durée pendant laquelle CloudFront met les objets en cache. Il est recommandé d'utiliser une politique de cache et une politique de demande d'origine pour contrôler la clé de cache et les demandes d'origine.

Si vous n'avez pas besoin de mettre votre contenu en cache, utilisez la politique CachingDisabled pour désactiver la mise en cache. Pour plus d’informations, consultez la section Comment modifier mes configurations afin que CloudFront ne mette pas certains fichiers en cache ?

Implémenter un mécanisme de nouvelle tentative avec backoff exponentiel

Il est recommandé d'intégrer une logique de nouvelle tentative dans vos applications pour réessayer les requêtes qui renvoient une erreur. Tous les kits SDK AWS sont dotés d'un mécanisme de nouvelle tentative intégré avec un algorithme qui utilise le backoff exponentiel. L’algorithme met en œuvre des temps d'attente de plus en plus longs entre les tentatives pour des réponses d'erreur consécutives. De nombreux algorithmes de backoff exponentiel utilisent le gigue pour empêcher les collisions successives. Pour plus d'informations, consultez la section Comportement en matière de nouvelle tentative.

Informations connexes

Ce que vous devez savoir lors de l’invalidation de fichiers

Quotas sur les invalidations

CreateInvalidation

AWS OFFICIELA mis à jour il y a 3 mois