Invalidar archivos - Amazon CloudFront

Invalidar archivos

Si necesita quitar un archivo de cachés de borde de CloudFront antes de que caduquen, puede elegir una de las siguientes alternativas:

  • Invalide el archivo de las cachés perimetrales. La vez siguiente que un lector solicita el archivo, CloudFront vuelve al origen para recuperar la última versión.

  • Utilice el control de versiones de archivos para ofrecer una versión diferente del archivo con un nombre distinto. Para obtener más información, consulte Actualización de archivos existentes con versiones de nombres de archivos.

Para invalidar archivos, puede especificar la ruta de archivos individuales o una ruta que termine en el comodín *, que puede ser aplicable a un archivo o a muchos, tal y como se muestra en los siguientes ejemplos:

  • /images/image1.jpg

  • /images/image*

  • /images/*

nota

Si utiliza la AWS Command Line Interface (AWS CLI) para la invalidación de archivos y especifica una ruta que incluye el comodín *, utilice comillas (") para delimitar la ruta.

Por ejemplo: aws cloudfront create-invalidation --distribution-id distribution_ID --paths "/*"

Puede enviar una cierta cantidad de rutas de invalidación al mes de forma gratuita. Si supera la cantidad de rutas de invalidación enviadas que se le asignan por mes, pagará un cargo por cada ruta que envíe. Para obtener más información acerca de los cargos por invalidaciones, consulte Cargos por invalidación de archivo.

Elegir entre invalidar archivos y utilizar nombres de archivo con versiones

Para controlar las versiones de los archivos que se distribuyen desde su distribución, puede invalidar archivos o asignarles nombres de archivo con versiones. Si desea actualizar sus archivos con frecuencia, le recomendamos utilizar principalmente el control de versiones de archivos por las siguientes razones:

  • El control de versiones le permite controlar qué archivo devuelve una solicitud incluso cuando el usuario tiene una versión almacenada en caché, ya sea localmente o tras un proxy de almacenamiento en caché de empresa. Si invalida el archivo, el usuario podría seguir viendo la versión antigua hasta que caduque en esas cachés.

  • Los registros de acceso de CloudFront incluyen los nombres de los archivos, así que el control de versiones facilita el análisis de los resultados de los cambios de archivos.

  • El control de versiones es una forma de ofrecer distintas versiones de archivos a diferentes usuarios.

  • El control de versiones simplifica la progresión y restauración de archivos entre revisiones.

  • El control de versiones es más económico. Todavía tendrá que pagar la transferencia que hace CloudFront de las nuevas versiones de los archivos a ubicaciones de borde, pero no tendrá que pagar por la invalidación de archivos.

Para obtener más información acerca del control de versiones, consulte Actualización de archivos existentes con versiones de nombres de archivos.

Determinar qué archivos invalidar

Si desea invalidar varios archivos como, por ejemplo, todos los archivos de un directorio o todos los archivos que comienzan por los mismos caracteres, puede incluir el comodín * al final de la ruta de invalidación. Para obtener más información acerca de cómo utilizar el comodín *, consulte Invalidation paths.

Si desea invalidar archivos seleccionados, pero los usuarios no necesariamente obtienen acceso a todos los del origen, puede determinar qué archivos de CloudFront han sido solicitados por lectores e invalidar solo esos. Para determinar qué archivos han solicitado los lectores, habilite el registro de acceso de CloudFront. Para obtener más información acerca de los registros de acceso, consulte Configuración y uso de registros estándar (registros de acceso).

Especificar los archivos que invalidar

Tenga en cuenta lo siguiente acerca de especificar los archivos que desea invalidar.

Sensibilidad de mayúsculas y minúsculas

Las rutas de invalidación diferencian mayúsculas de minúsculas, lo que quiere decir que /images/image.jpg y /images/Image.jpg especifican dos archivos diferentes.

Cambio del URI mediante una función de Lambda

Si su distribución de CloudFront activa una función de Lambda en eventos de solicitud del lector, y si la función cambia el URI del archivo solicitado, recomendamos que invalide ambos URI para quitar el archivo de las cachés de borde de CloudFront:

  • El URI de la solicitud del espectador

  • El URI después de que la función lo cambiara

Por ejemplo, suponga que su función de Lambda cambia el URI de un archivo de lo siguiente:

https://d111111abcdef8.cloudfront.net/index.html

a un URI que incluye un directorio de idioma:

https://d111111abcdef8.cloudfront.net/en/index.html

Para invalidar el archivo, debe especificar las siguientes rutas:

  • /index.html

  • /en/index.html

Para obtener más información, consulte Invalidation paths.

Objeto raíz predeterminado

Para invalidar el objeto raíz predeterminado (archivo), especifique la ruta del mismo modo que especifica la de cualquier otro archivo.

Reenvío de cookies

Si configura CloudFront para reenviar cookies a su origen, las cachés de borde de CloudFront pueden contener varias versiones del archivo. Al invalidar un archivo, CloudFront invalida todas las versiones del archivo almacenado en caché independientemente de sus cookies asociadas. No se puede invalidar de manera selectiva algunas versiones y otras no en función de las cookies asociadas. Para obtener más información, consulte Almacenamiento en caché de contenido en función de cookies.

Reenvío de encabezados

Si ha configurado una lista blanca de CloudFront para reenviar encabezados al origen y para almacenar en caché en función de los valores de los encabezados, las cachés de borde de CloudFront pueden contener varias versiones del archivo. Al invalidar un archivo, CloudFront invalida todas las versiones del archivo almacenado en caché independientemente de los valores de los encabezados. No se puede invalidar de manera selectiva algunas versiones y otras no en función de los valores de los encabezados. (Si configura CloudFront para reenviar todos los encabezados a su origen, CloudFront no almacenará en caché los archivos). Para obtener más información, consulte Almacenamiento en caché de contenido en función de encabezados de solicitud.

Reenvío de cadenas de consulta

Si configura CloudFront para que reenvíe cadenas de consultas a su origen, deberá incluir las cadenas de consulta a la hora de invalidar archivos, tal y como se muestra en los siguientes ejemplos:

  • /images/image.jpg?parameter1=a

  • /images/image.jpg?parameter1=b

Si los clientes incluyen cinco cadenas de consulta diferentes para el mismo archivo, puede invalidar el archivo cinco veces, una vez por cadena de consulta, o utilizar el comodín * en la ruta, tal y como se muestra en el ejemplo siguiente:

/images/image.jpg*

Para obtener más información acerca del uso de comodines en la ruta de invalidación, consulte Invalidation paths. Para obtener más información acerca de cadenas de consulta, consulte Almacenamiento en caché de contenido en función de parámetros de cadenas de consulta. Para determinar qué cadenas de consulta están en uso, puede habilitar el registro de CloudFront. Para obtener más información, consulte Configuración y uso de registros estándar (registros de acceso).

Máximo permitido

Para obtener información sobre el número máximo de invalidaciones permitidas, consulte Máximo de solicitud de invalidación simultánea.

Microsoft Smooth Streaming files

No es posible invalidar archivos multimedia en formato Microsoft Smooth Streaming si se ha activado Smooth Streaming para el comportamiento de la caché correspondiente.

Caracteres no ASCII o no seguros en la ruta

Si la ruta incluye caracteres no ASCII o no seguros, tal y como se define en RFC 1783, codifique los caracteres como URL. No codifique como URL otros caracteres de la ruta, o CloudFront no invalidará la versión antigua del archivo actualizado.

Rutas de invalidación

La ruta es relativa a la distribución. Por ejemplo, para invalidar el archivo en https://d111111abcdef8.cloudfront.net/images/image2.jpg, especifique lo siguiente:

/images/image2.jpg

nota

En la consola de CloudFront, puede omitir la barra diagonal inicial en la ruta, así: images/image2.jpg. Cuando se utiliza la API de CloudFront directamente, las rutas de invalidación deben comenzar con una barra diagonal a la izquierda.

También puede invalidar varios archivos simultáneamente mediante el comodín *. El *, que sustituye a 0 o más caracteres, debe ser el último carácter de la ruta de invalidación. Además, si utiliza AWS Command Line Interface (AWS CLI) para la invalidación de archivos y especifica una ruta que incluye el comodín *, utilice comillas (") para delimitar la ruta (así: "/*").

A continuación se muestran algunos ejemplos:

  • Para invalidar todos los archivos de un directorio:

    /ruta-directorio/*

  • Para invalidar un directorio, todos sus subdirectorios y todos los archivos en el directorio y subdirectorios:

    /ruta-directorio*

  • Para invalidar todos los archivos que tienen el mismo nombre, pero diferentes extensiones, como logo.jpg, logo.png y logo.gif:

    /ruta-directorio/nombre-archivo.*

  • Para invalidar todos los archivos de un directorio cuyos nombres comienzan por los mismos caracteres (como, por ejemplo, todos los archivos de video en formato HLS), independientemente de la extensión del nombre del archivo:

    /ruta-directorio/primeros-caracteres-nombre-archivo*

  • Si ha configurado CloudFront para almacenar en caché en función de los parámetros de cadenas de consulta y desea invalidar todas las versiones de un archivo:

    /ruta-directorio/nombre-archivo.extensión-nombre-archivo*

  • Para invalidar todos los archivos de una distribución:

    /*

La longitud máxima de una ruta es 4 000 caracteres. No se puede utilizar un comodín dentro de la ruta; solo al final de la ruta.

Para obtener información sobre la invalidación de archivos si utiliza una función de Lambda para cambiar el URI, consulte Changing the URI Using a Lambda Function.

El cargo por enviar una ruta de invalidación es la misma independientemente de la cantidad de archivos que invalide: un único archivo (/images/logo.jpg) o todos los archivos asociados a una distribución (/*). Para obtener más información, consulte los Precios de Amazon CloudFront.

Si la ruta de invalidación es un directorio y no ha estandarizado un método para especificar directorios (con o sin barra inclinada, /, al final), le recomendamos invalidar el directorio con y sin barra inclinada al final, por ejemplo, /images y /images/.

URL firmadas

Si utiliza URL firmadas, invalide un archivo incluyendo solo la parte de la URL anterior al signo de interrogación (?).

Invalidar archivos con la consola

Puede utilizar la consola de CloudFront para crear y ejecutar una invalidación, mostrar una lista de las invalidaciones que ha enviado anteriormente y mostrar información detallada acerca de invalidaciones individuales. También puede copiar una invalidación existente, editar la lista de las rutas de archivos y ejecutar la invalidación editada. No puede eliminar las invalidaciones de la lista.

Invalidar archivos

Para invalidar archivos mediante la consola de CloudFront, haga lo siguiente.

Para invalidar archivos

  1. Inicie sesión en AWS Management Console y abra la consola de CloudFront en https://console.aws.amazon.com/cloudfront/v3/home.

  2. Elija la distribución cuyos archivos desea invalidar.

  3. Elija Distribution Settings (Configuración de distribución).

  4. Elija la pestaña Invalidations (Invalidaciones).

  5. Elija Create Invalidation (Crear invalidación).

  6. Escriba una ruta de invalidación de cada archivo que desea invalidar por línea. Para obtener más información acerca de cómo especificar rutas de invalidación, consulte Especificar los archivos que invalidar.

    importante

    Especifique las rutas de archivos cuidadosamente. Las solicitudes de invalidación no se pueden cancelar una vez comenzadas.

  7. Elija Invalidate (Invalidar).

Copiar, editar y volver a ejecutar una invalidación existente

Puede copiar invalidaciones que haya creado anteriormente, actualizar la lista de rutas de invalidación y ejecutar las invalidaciones actualizadas. No es posible copiar invalidaciones existentes, actualizar rutas de invalidación ni guardar invalidaciones actualizadas a continuación sin ejecutarlas.

importante

Si copia una invalidación que sigue en curso, actualiza la lista de rutas de anulación y, a continuación, ejecuta la invalidación actualizada, CloudFront no detiene ni elimina la invalidación que ha copiado. Si aparece cualquier ruta de invalidación en el original y en la copia, CloudFront intentará invalidar los archivos dos veces, y ambas invalidaciones se contabilizarán como parte de la cantidad máxima de invalidaciones gratuitas del mes. Si ya se ha alcanzado la cantidad máxima de invalidaciones gratuitas, se le facturarán las invalidaciones de ambos archivos. Para obtener más información, consulte Máximo de solicitud de invalidación simultánea.

Para copiar, editar y volver a ejecutar una invalidación existente

  1. Inicie sesión en AWS Management Console y abra la consola de CloudFront en https://console.aws.amazon.com/cloudfront/v3/home.

  2. Elija la distribución que contiene la invalidación que desea copiar.

  3. Elija Distribution Settings (Configuración de distribución).

  4. Elija la pestaña Invalidations (Invalidaciones).

  5. Elija la invalidación que desea copiar.

    Si no está seguro de qué invalidación desea copiar, puede elegir una invalidación y elegir Detalles para mostrar información detallada acerca de la misma.

  6. Elija Copy.

  7. Actualice la lista de rutas de invalidación si procede.

  8. Elija Invalidate (Invalidar).

Cancelación de invalidaciones

Al enviar una solicitud de invalidación a CloudFront, CloudFront reenvía la solicitud a todas las ubicaciones de borde al cabo de unos segundos, y cada ubicación de borde comienza a procesar la invalidación de forma inmediata. Por consiguiente, no puede cancelar una invalidación después de enviarla.

Listado de invalidaciones

Puede mostrar una lista de las 100 últimas invalidaciones que ha creado y ejecutado para una distribución utilizando la consola de CloudFront. Si desea obtener una lista de más de 100 invalidaciones, utilice la acción de la API ListInvalidations. Para obtener más información, consulte ListInvalidations en la Referencia de la API de Amazon CloudFront.

Para mostrar una lista de invalidaciones

  1. Inicie sesión en AWS Management Console y abra la consola de CloudFront en https://console.aws.amazon.com/cloudfront/v3/home.

  2. Elija la distribución cuyas invalidaciones desee mostrar en una lista.

  3. Elija Distribution Settings (Configuración de distribución).

  4. Elija la pestaña Invalidations (Invalidaciones).

nota

No puede eliminar las invalidaciones de la lista.

Visualización de información acerca de una invalidación

Visualice información detallada sobre cualquier invalidación, incluidos ID de distribución y de invalidación, estado de la invalidación, la fecha y la hora de creación de la invalidación y una lista completa de las rutas de invalidación.

Para mostrar información acerca de una invalidación

  1. Inicie sesión en AWS Management Console y abra la consola de CloudFront en https://console.aws.amazon.com/cloudfront/v3/home.

  2. Elija la distribución que contenga la invalidación de la que desea mostrar información detallada.

  3. Elija Distribution Settings (Configuración de distribución).

  4. Elija la pestaña Invalidations (Invalidaciones).

  5. Elija la invalidación aplicable.

  6. Elija Detalles.

Invalidar archivos mediante la API de CloudFront

Para obtener información acerca de la invalidación de objetos y mostrar información acerca de invalidaciones utilizando la API de CloudFront, consulte los siguientes temas en la Referencia de la API de Amazon CloudFront:

Máximo de solicitud de invalidación simultánea

Si está invalidando archivos uno a uno, podría haber solicitudes de invalidación de hasta 3000 archivos por distribución en ejecución simultáneamente. Podría tratarse de una sola solicitud de invalidación para hasta 3000 archivos, hasta 3000 solicitudes de un archivo cada una o cualquier otra combinación que no supere 3000 archivos. Por ejemplo, puede enviar 30 solicitudes de invalidación para 100 archivos cada una. Mientras las 30 solicitudes de invalidación estén realizándose, no se pueden enviar más solicitudes de invalidación. Si supera el máximo, CloudFront devuelve un mensaje de error.

Si está utilizando el comodín *, puede tener solicitudes de hasta 15 patrones de invalidación ejecutándose simultáneamente. También puede tener solicitudes de invalidación de hasta 3000 archivos individuales por distribución ejecutándose simultáneamente; el máximo permitido de solicitudes de invalidación con comodines es independiente del máximo de invalidación de archivos individuales.

Cargos por invalidación de archivo

Las primeras 1 000 rutas de invalidación que envíe al mes son gratis; cada ruta de invalidación adicional a las 1 000 mensuales genera cargos. Una ruta de invalidación puede ser aplicable a un único archivo (por ejemplo, /images/logo.jpg) o a varios archivos (como, por ejemplo, /images/*). Cualquier ruta que incluya el comodín * cuenta como una ruta incluso si hace que CloudFront invalide miles de archivos.

Este máximo de 1000 rutas de invalidación gratuitas al mes se aplica al número total de rutas de invalidación de todas las distribuciones que haya creado con una cuenta de AWS. Por ejemplo, si utiliza la cuenta john@example.com de AWS para crear tres distribuciones y envía 600 rutas de invalidación por distribución en un mes (lo que generaría un total de 1800 rutas de invalidación), AWS cobrará 800 rutas de invalidación ese mes. Para obtener información específica acerca de los precios de invalidación, consulte Precios de Amazon CloudFront. Para obtener más información acerca de rutas de invalidación, consulte Invalidation paths.