Saltar al contenido

¿Cómo soluciono el error «TooManyInvalidationsInProgress» en las solicitudes de invalidación de CloudFront?

3 minutos de lectura
0

Intenté invalidar los archivos de mi distribución de Amazon CloudFront para eliminar contenido y recibí el error «TooManyInvalidationsInProgress».

Descripción corta

Para archivos individuales, puedes realizar hasta 3000 solicitudes de invalidación para cada distribución.

Si superas esta cuota, es posible que recibas un mensaje de error similar al siguiente:

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

Para resolver este problema, utiliza nombres de archivo con versiones o caracteres comodín, controla el tiempo de los archivos en caché o implementa un mecanismo de reintento con retroceso exponencial.

Resolución

Uso de nombres de archivo con versiones

Si actualizas los archivos de tu distribución con frecuencia, se recomienda utilizar nombres de archivo con versiones. Los archivos con versiones permiten controlar mejor los archivos sobrealmacenados en caché y son menos costosos que la invalidación de archivos. Para obtener más información, consulta Elección entre invalidar archivos y utilizar nombres de archivo con versiones.

Uso de comodines

Puedes usar caracteres comodín en la ruta de invalidación con un máximo de 15 rutas de invalidación en curso al mismo tiempo sin cuotas de archivos. Debes poner el comodín (*) al final de la ruta de invalidación, como /images/image.jpg*.

Control de la cantidad de tiempo que CloudFront almacena archivos en caché

Puedes cambiar la configuración del origen o la distribución para especificar la cantidad de tiempo que CloudFront almacena los objetos en caché. Se recomienda utilizar una política de caché y una política de solicitud de origen para controlar la clave de caché y las solicitudes de origen.

Si no necesitas almacenar tu contenido en caché, usa la política CachingDisabled para desactivar el almacenamiento en caché. Para obtener más información, consulta ¿Cómo cambio mis configuraciones para que CloudFront no almacene en caché ciertos archivos?

Implementación de un mecanismo de reintento con retroceso exponencial

Se recomienda incorporar una lógica de reintentos en las aplicaciones para volver a enviar las solicitudes que devuelven un error. Todos los SDK de AWS tienen un mecanismo de reintento integrado con un algoritmo que utiliza un retroceso exponencial. El algoritmo implementa tiempos de espera cada vez más prolongados entre reintentos para las respuestas de error consecutivas. Muchos de los algoritmos de retroceso exponencial utilizan la fluctuación para evitar colisiones sucesivas. Para más información, consulta Comportamiento de los reintentos.

Información relacionada

Qué se debe saber al invalidar archivos

Cuotas de invalidaciones

CreateInvalidation

OFICIAL DE AWSActualizada hace 3 meses