Invalida contenido almacenado en caché

En esta página, se describe cómo invalidar el contenido almacenado en caché de Cloud CDN.

Por ejemplo, si un archivo ubicado en /images/file.jpg se almacenó en caché y debe invalidarse, puedes usar varios métodos para invalidarlo, según si quieres incluir solo ese archivo o tener un alcance más amplio. En cada caso, puedes invalidar todos los nombres de host o solo uno.

Para obtener más información sobre la invalidación de caché, consulta Descripción general de la invalidación de caché.

Antes de comenzar

Puedes usar Google Cloud CLI o la consola de Google Cloud para realizar invalidaciones.

Puedes acceder a Google Cloud CLI de dos maneras:

  • Instala Google Cloud CLI. Para ello, sigue las instrucciones que se encuentran en Instala con apt-get. Si nunca usaste Google Cloud CLI, primero ejecuta gcloud init para autenticarte.

  • Usa Cloud Shell, que viene con gcloud ya instalado.

Para crear una función personalizada con los permisos requeridos, consulta Crea y administra funciones personalizadas.

Para agregar una función predefinida, usa la Guía de inicio rápido de IAM.

Invalida solo un archivo

Console

  1. En la consola de Google Cloud, ve a la página Cloud CDN.

    Ir a la página Cloud CDN

  2. En Balanceadores de carga asociados, haz clic en el nombre del balanceador de cargas.
  3. Haz clic en la pestaña Invalidación de caché.
  4. Ingresa la ruta de acceso al archivo.
    • Si deseas invalidar una ruta de acceso para todos los nombres de host, ingresa solo la ruta de acceso (por ejemplo: /images/file.jpg).
    • Si deseas invalidar una ruta de acceso solo para un nombre de host, especifica el nombre de host como parte de la ruta de acceso (por ejemplo: host1.com/images/file.jpg).
  5. Haz clic en Invalidar.

gcloud

Usa el comando gcloud compute url-maps invalidate-cdn-cache.

Para especificar solo un archivo para la invalidación, usa la marca --path con el nombre del archivo.

gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --path "/images/file.jpg"

Reemplaza URL_MAP_NAME por el nombre de tu mapa de URL. Para enumerar tus mapas de URL, usa el comando gcloud compute url-maps list.

Para invalidar solo un host, agrega la marca --host, por ejemplo, --host host1.com.

gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --host host1.com \
    --path "/images/file.jpg"

De forma predeterminada, la Google Cloud CLI espera hasta que se complete la invalidación. Para realizar la invalidación en segundo plano, agrega --async a la línea de comandos.

API

Usa la llamada a la API del método urlMaps.invalidateCache.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/URL_MAP_NAME/invalidateCache

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto de la consola de Google Cloud.
  • URL_MAP_NAME: Es el nombre del mapa de URL.

Para especificar un archivo para la invalidación, usa el siguiente cuerpo de solicitud JSON de muestra:

{
  "path": "/images/file.jpg"
}

Para invalidar el archivo de un solo host, usa el siguiente cuerpo de solicitud JSON de muestra:

{
  "host": "host1.com",
  "path": "/images/file.jpg"
}

Invalida todo el directorio

Console

  1. En la consola de Google Cloud, ve a la página Cloud CDN.

    Ir a la página Cloud CDN

  2. En Balanceadores de carga asociados, haz clic en el nombre del balanceador de cargas.
  3. Haz clic en la pestaña Invalidación de caché.
  4. Ingresa el comodín y la ruta de acceso del directorio (/path/to/file/*).
    • Si deseas invalidar todo el directorio para todos los nombres de host, ingresa solo la ruta de acceso y el comodín (por ejemplo: /images/*).
    • Si deseas invalidar todo el directorio para un solo nombre de host, especifica el nombre de host como parte de la ruta de acceso (por ejemplo: host1.com/images/*).
  5. Haz clic en Invalidar.

gcloud

Usa el comando gcloud compute url-maps invalidate-cdn-cache.

gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --path "/images/*"

Reemplaza URL_MAP_NAME por el nombre de tu mapa de URL.

Para invalidar solo un host, agrega la marca --host, por ejemplo, --host host1.com.

gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --host host1.com \
    --path "/images/*"

API

Usa la llamada a la API del método urlMaps.invalidateCache.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/URL_MAP_NAME/invalidateCache

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto de la consola de Google Cloud
  • URL_MAP_NAME: Es el nombre del mapa de URL.

Para especificar un directorio para la invalidación, usa el siguiente cuerpo de solicitud JSON de muestra:

{
  "path": "/images/*"
}

Para invalidar un directorio para un solo host, usa el siguiente cuerpo de solicitud JSON de muestra:

{
  "host": "host1.com",
  "path": "/images/*"
}

Invalidación por etiquetas de caché

Console

El uso de etiquetas de caché para la invalidación no es compatible con la consola de Google Cloud.

gcloud

Usa el comando gcloud beta compute url-maps invalidate-cdn-cache

gcloud beta compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --tags=TAGS

Reemplaza lo siguiente:

  • URL_MAP_NAME: Es el nombre del mapa de URL.
  • TAGS: Es una etiqueta o una lista de etiquetas separadas por comas. Como alternativa, puedes especificar esta marca hasta 10 veces.

Por ejemplo, si la respuesta del backend incluye un encabezado Cache-Tag con un ID de usuario opaco, como un UUID4 o alguna otra forma de GUID, puedes invalidar todo el contenido de un usuario específico con la marca tag. Además, para invalidar el contenido de un solo host, como el de tu entorno de pruebas, agrega la marca --host.

gcloud beta compute url-maps invalidate-cdn-cache url_map_1 \
    --tags="1115b8f4-f804-4861-9629-8cb9aecdeeb3" \
    --host="host1.com"

API

Usa la llamada a la API del método urlMaps.invalidateCache.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/urlMaps/URL_MAP_NAME/invalidateCache

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto de la consola de Google Cloud.
  • URL_MAP_NAME: Es el nombre del mapa de URL.

Para especificar etiquetas de caché para la invalidación, usa el siguiente cuerpo de solicitud JSON de muestra:

{
  "tags": "tag1,tag2"
}

Puedes especificar una sola etiqueta o una lista de etiquetas separadas por comas.

Para invalidar por etiquetas de caché para un solo host, usa el siguiente cuerpo de solicitud JSON de muestra:

{
  "host": "host1.com",
  "path": "tag1,tag2"
}

Invalida todo

Console

  1. En la consola de Google Cloud, ve a la página Cloud CDN.

    Ir a la página Cloud CDN

  2. En Balanceadores de carga asociados, haz clic en el nombre del balanceador de cargas.
  3. Haz clic en la pestaña Invalidación de caché.
  4. Ingresa solo la raíz y el comodín (/*).
    • Si deseas invalidar todo para todos los nombres de host, ingresa solo /* en el campo.
    • Si deseas invalidar todo para un solo nombre de host, especifica el nombre de host como parte de la ruta de acceso (por ejemplo: host1.com/*).
  5. Haz clic en Invalidar.

gcloud

Usa el comando gcloud compute url-maps invalidate-cdn-cache

gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --path "/*"

Reemplaza lo siguiente:

  • URL_MAP_NAME: Es el nombre del mapa de URL.
  • /*: Es la ruta de URL que deseas invalidar, que no incluye el nombre de host. La ruta de acceso puede usar un nombre de archivo explícito o un comodín.

Para invalidar solo un host, agrega la marca --host, por ejemplo, --host host1.com.

gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --host host1.com \
    --path "/*"

API

Usa la llamada a la API del método urlMaps.invalidateCache.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/URL_MAP_NAME/invalidateCache

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto de la consola de Google Cloud.
  • URL_MAP_NAME: Es el nombre del mapa de URL.

Para especificar una ruta de URL para la invalidación, usa el siguiente cuerpo de solicitud JSON de muestra:

{
  "path": "/*"
}

Para invalidar la ruta de URL de un solo host, usa el siguiente cuerpo de solicitud JSON de muestra:

{
  "host": "host1.com",
  "path": "/*"
}

Consulta el estado de tu solicitud de invalidación

Cloud CDN emite dos líneas de registro por invalidación, una cuando se acepta la invalidación y la otra cuando se completa. El primero tiene la información del host y la ruta de acceso.

Para ver el estado de tu solicitud de invalidación o encontrar una lista definitiva de las solicitudes enviadas recientemente, puedes usar Cloud Logging o Cloud Monitoring.

El siguiente es un comando de muestra que usa el registro:

gcloud logging read 'protoPayload.methodName="v1.compute.urlMaps.invalidateCache"' \
    --limit=10

La siguiente es una consulta de ejemplo que usa la supervisión:

protoPayload.serviceName="compute.googleapis.com"
protoPayload.methodName="v1.compute.urlMaps.invalidateCache"

¿Qué sigue?