Invalidar contenido almacenado en caché

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

Por ejemplo, si se ha almacenado en caché un archivo ubicado en /images/file.jpg y es necesario invalidarlo, puedes usar varios métodos para hacerlo, en función de si quieres que solo afecte a ese archivo o a un ámbito 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 el artículo Descripción general de la invalidación de caché.

Antes de empezar

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

Puedes acceder a Google Cloud CLI de dos formas:

  • Instala Google Cloud CLI siguiendo las instrucciones de la sección Instalar con apt-get. Si no has usado la CLI de Google Cloud anteriormente, ejecuta primero gcloud init para autenticarte.

  • Usa Cloud Shell, que incluye gcloud ya instalado.

Para crear un rol personalizado con los permisos necesarios, consulta el artículo Crear y gestionar roles personalizados.

Para añadir un rol predefinido, consulta la guía de inicio rápido de gestión de identidades y accesos.

Invalidar solo un archivo

Consola

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

    Ir a Cloud CDN

  2. Haz clic en un origen.

  3. Haz clic en la pestaña Invalidación de caché.

  4. En Balanceadores de carga asociados, selecciona el balanceador de carga.

  5. En Especificar objetos que invalidar, haga lo siguiente:

    • En Host (Host), especifica un nombre de host, a menos que quieras invalidar la ruta de todos los nombres de host.
    • En Ruta, especifica la ruta y el nombre del archivo. Por ejemplo, /images/file.jpg.
  6. Haz clic en Invalidar.

gcloud

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

Para especificar solo un archivo que se va a invalidar, usa la marca --path con el nombre de archivo.

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

Sustituye URL_MAP_NAME por el nombre de tu mapa de URLs. Para ver una lista de tus mapas de URLs, usa el comando gcloud compute url-maps list.

Para invalidar solo un host, añade 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, Google Cloud CLI espera hasta que se complete la invalidación. Para realizar la invalidación en segundo plano, añade --async a la línea de comandos.

API

Usa el método urlMaps.invalidateCache.

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

Haz los cambios siguientes:

  • PROJECT_ID: tu Google Cloud consola ID de proyecto
  • URL_MAP_NAME: nombre del mapa de URLs.

Para especificar un archivo que se va a invalidar, usa el siguiente cuerpo de solicitud JSON de ejemplo:

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

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

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

Invalidar todo el directorio

Consola

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

    Ir a Cloud CDN

  2. Haz clic en un origen.

  3. Haz clic en la pestaña Invalidación de caché.

  4. En Balanceadores de carga asociados, selecciona el balanceador de carga.

  5. En Especificar objetos que invalidar, haga lo siguiente:

    • En Host (Host), especifica un nombre de host, a menos que quieras invalidar la ruta de todos los nombres de host.
    • En Ruta, especifica la ruta y un asterisco como comodín (por ejemplo, /images/*).
  6. 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/*"

Sustituye URL_MAP_NAME por el nombre de tu mapa de URLs.

Para invalidar solo un host, añade 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 el método urlMaps.invalidateCache.

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

Haz los cambios siguientes:

  • PROJECT_ID: tu Google Cloud consola ID de proyecto
  • URL_MAP_NAME: nombre del mapa de URLs.

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

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

Para invalidar un directorio de un solo host, utiliza el siguiente cuerpo de solicitud JSON de ejemplo:

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

Invalidar por etiquetas de caché

Consola

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

    Ir a Cloud CDN

  2. Haz clic en un origen.

  3. Haz clic en la pestaña Invalidación de caché.

  4. En Balanceadores de carga asociados, selecciona el balanceador de carga.

  5. En Especificar objetos que invalidar, en Etiquetas de caché, especifique una o varias etiquetas que invalidar. Usa espacios o comas para separar las etiquetas.

  6. Haz clic en Invalidar.

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

Haz los cambios siguientes:

  • URL_MAP_NAME: nombre del mapa de URLs.
  • TAGS: una etiqueta o una lista de etiquetas separadas por comas. También 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 u otro tipo de GUID, puede invalidar todo el contenido de un usuario específico mediante la marca tag. Además, para invalidar contenido de un solo host, como tu entorno de pruebas, añade 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 el método urlMaps.invalidateCache.

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

Haz los cambios siguientes:

  • PROJECT_ID: tu Google Cloud consola ID de proyecto
  • URL_MAP_NAME: nombre del mapa de URLs.

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

{
  "cacheTags": [
    "tag1",
    "tag2"
  ]
}

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

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

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

Invalidar todo

Aunque puedes invalidar todo, es potencialmente arriesgado. Evalúa tus requisitos detenidamente antes de continuar.

Consola

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

    Ir a Cloud CDN

  2. Haz clic en un origen.

  3. Haz clic en la pestaña Invalidación de caché.

  4. En Balanceadores de carga asociados, selecciona el balanceador de carga.

  5. En Especificar objetos que invalidar, haga lo siguiente:

    • En Host (Host), especifica un nombre de host, a menos que quieras invalidar la ruta de todos los nombres de host.
    • En Ruta, usa un asterisco. Por ejemplo, /*.
  6. Haga clic en Invalidar y, a continuación, en Confirmar para indicar que quiere que Cloud CDN invalide todo.

gcloud

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

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

Haz los cambios siguientes:

  • URL_MAP_NAME: nombre del mapa de URLs.
  • /*: la ruta de la URL que quiere invalidar. No incluye el nombre de host. La ruta puede usar un nombre de archivo explícito o un asterisco como comodín.

Para invalidar solo un host, añade la marca --host. Por ejemplo, --host host1.com.

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

API

Usa el método urlMaps.invalidateCache.

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

Haz los cambios siguientes:

  • PROJECT_ID: tu Google Cloud consola ID de proyecto
  • URL_MAP_NAME: nombre del mapa de URLs.

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

{
  "path": "/*"
}

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

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

Consultar el estado de una solicitud de invalidación

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

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.

Consola

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

    Ir a Cloud CDN

  2. Haz clic en un origen.

  3. Haz clic en la pestaña Invalidación de caché.

  4. Para ver el estado y los resultados de la solicitud de invalidación, haga clic en Ir a Cloud Logging.

gcloud

A continuación, se muestra un comando de ejemplo que usa Logging:

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

A continuación, se muestra una consulta de ejemplo que usa Monitoring:

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

Siguientes pasos