Usa la configuración y las anulaciones de TTL

En esta página, se proporcionan instrucciones para usar las anulaciones de TTL con Cloud CDN. Las anulaciones de TTL te brindan un control detallado sobre la cantidad de tiempo que Cloud CDN almacena en caché tu contenido antes de volver a validarlo.

Antes de comenzar

  • Lee sobre los modos de almacenamiento en caché.

  • Asegúrate de que Cloud CDN esté habilitado. Para obtener instrucciones, consulta Usa Cloud CDN.

  • Si es necesario, actualiza a la última versión del SDK de Cloud:

    gcloud components update
    

Configura el TTL predeterminado

Cuando configuras el modo de almacenamiento en caché a fin de almacenar en caché todo el contenido estático (CACHE_ALL_STATIC) o todo el contenido sin importar su tipo (FORCE_CACHE_ALL), el tiempo de actividad (TTL) predeterminado para el almacenamiento en caché del contenido es de 3,600 segundos (1 hora).

Con el fin de mejorar las tasas de aciertos de caché en el contenido que no cambia con frecuencia, puedes anular el TTL predeterminado para que Cloud CDN vuelva a validar el contenido en el origen con menos frecuencia. El valor máximo permitido para el TTL predeterminado es de 31,622,400 segundos (1 año). Los objetos a los que se accede con poca frecuencia pueden expulsarse de la caché antes del TTL definido.

Establecer un TTL predeterminado de 0 significa que la respuesta se vuelve a validar en el origen, en los casos en que se aplica el TTL predeterminado.

Cuando configuras el modo de caché para almacenar en caché todo el contenido sin importar el tipo (FORCE_CACHE_ALL), el TTL predeterminado reemplaza al TTL establecido en todas las respuestas (incluidas las que tienen un TTL configurado por encabezados de origen). En este modo, los clientes ven el TTL predeterminado, ya que Cloud CDN establece los atributos public y max-age de las respuestas que se entregan a los clientes.

Con el modo CACHE_ALL_STATIC, el TTL predeterminado se aplica al contenido almacenado en caché que un origen entrega para respuestas que no tienen un TTL válido existente (encabezado max-age, s-max-age o Expires). En el modo CACHE_ALL_STATIC, el TTL predeterminado no modifica el encabezado Cache-Control que se entrega a los clientes. Para modificar el encabezado Cache-Control en el modo CACHE_ALL_STATIC, debes establecer el TTL del cliente.

Cuando configuras el modo de caché para usar encabezados de origen (USE_ORIGIN_HEADERS), el valor de TTL predeterminado no se aplica y no se puede establecer porque Cloud CDN usa la directiva de origen max-age o s-max-age, o el encabezado Expires.

Console

  1. En Google Cloud Console, ve a la página Balanceo de cargas.

    Ir a la página Balanceo de cargas

  2. Haz clic en el nombre del balanceador de cargas de HTTP(S) externo.
  3. Haz clic en Editar .
  4. En Configuración de backend, selecciona un backend y haz clic en Editar .
  5. Asegúrate de que la opción Habilitar Cloud CDN esté seleccionada.
  6. Asegúrate de que el modo de caché sea Almacenar en caché contenido estático (recomendado) o Forzar el almacenamiento en caché de todo el contenido. La anulación de los valores de TTL no es compatible cuando el modo de caché es Usar configuración de origen en función de los encabezados de control de caché.
  7. Selecciona un valor en Tiempo de actividad predeterminado.
  8. Haz clic en Guardar.

gcloud

Para los servicios de backend, usa el comando gcloud compute backend-services create o gcloud compute backend-services update con la marca --default-ttl.

Para los buckets de backend, usa el comando gcloud compute backend-buckets create o gcloud compute backend-buckets update con la marca --default-ttl.

gcloud compute backend-services (create | update) BACKEND_SERVICE_NAME
    --default-ttl=DEFAULT_TTL
gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME
    --default-ttl=DEFAULT_TTL

Reemplaza DEFAULT_TTL por un valor de hasta 31,622,400 segundos (1 año).

API

En el caso de los buckets de backend, usa la llamada a la API Method: backendBuckets.insert o Method: backendBuckets.update.

Para los servicios de backend, usa la llamada a la API Method: backendServices.insert o Method: backendServices.update.

Usa una de las siguientes llamadas a la API:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/BACKEND_BUCKET
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE

Agrega el siguiente fragmento al cuerpo de solicitud JSON:

"cdnPolicy": {
  "defaultTtl": DEFAULT_TTL
}

Reemplaza DEFAULT_TTL por un valor de hasta 31,622,400 segundos (1 año).

Establece el TTL máximo

El TTL máximo (máx.) especifica el TTL máximo permitido dentro de Cloud CDN para el contenido almacenado en caché que entrega un origen.

El TTL de una respuesta se limita por el TTL máximo si se cumple una de las siguientes condiciones:

  • La respuesta intenta establecer un max-age o s-maxage más alto que el valor máximo de TTL.
  • La respuesta tiene un encabezado Expires más de cdnPolicy.maxTtl segundos en el futuro.

La configuración de TTL máx. no cambia el valor max-age enviado al cliente. Para obtener más información, consulta Anula el TTL máximo del cliente. La configuración de TTL máx. solo afecta el tiempo que Cloud CDN intenta almacenar en caché el contenido.

Cuando configuras el modo de caché para almacenar en caché todo el contenido estático (CACHE_ALL_STATIC), de forma predeterminada, el TTL máximo del almacenamiento en caché del contenido se establece en 86,400 segundos (1 día). El valor máximo permitido es de 31,622,400 segundos (1 año). Sin embargo, los objetos a los que se accede con poca frecuencia pueden expulsarse de la caché antes del TTL definido.

Con FORCE_CACHE_ALL, el TTL siempre se establece en el TTL predeterminado; no puedes establecer un TTL máximo.

El valor de TTL máximo puede ser igual o mayor que el valor de TTL predeterminado.

Console

  1. En Google Cloud Console, ve a la página Balanceo de cargas.

    Ir a la página Balanceo de cargas

  2. Haz clic en el nombre del balanceador de cargas de HTTP(S) externo.
  3. Haz clic en Editar .
  4. En Configuración de backend, selecciona un backend y haz clic en Editar .
  5. Asegúrate de que la opción Habilitar Cloud CDN esté seleccionada.
  6. Asegúrate de que el modo de caché sea Almacenar en caché contenido estático (recomendado).
  7. Selecciona un valor en Tiempo de actividad máximo.
  8. Haz clic en Guardar.

gcloud

Para los servicios de backend, usa el comando gcloud compute backend-services create o gcloud compute backend-services update con la marca --max-ttl.

Para los buckets de backend, usa el comando gcloud compute backend-buckets create o gcloud compute backend-buckets update con la marca --max-ttl.

gcloud compute backend-services (create | update) BACKEND_SERVICE_NAME
    --max-ttl=MAX_TTL
gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME
    --max-ttl=MAX_TTL

Reemplaza MAX_TTL por un valor de hasta 31,622,400 segundos (1 año).

API

En el caso de los buckets de backend, usa la llamada a la API Method: backendBuckets.insert o Method: backendBuckets.update.

Para los servicios de backend, usa la llamada a la API Method: backendServices.insert o Method: backendServices.update.

Usa una de las siguientes llamadas a la API:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/BACKEND_BUCKET
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE

Agrega el siguiente fragmento al cuerpo de solicitud JSON:

"cdnPolicy": {
  "maxTtl": MAX_TTL
}

Reemplaza MAX_TTL por un valor de hasta 31,622,400 segundos (1 año).

Anula el TTL del cliente

En todos los modos de almacenamiento en caché, Cloud CDN pasa los encabezados Cache-Control al cliente.

El TTL de cliente te permite establecer un TTL máximo para lo que se envía a navegadores o clientes a fin de que los clientes vuelvan a validar el contenido con Cloud CDN con mayor frecuencia, sin necesidad de revalidar el origen. De esta manera, el contenido puede invalidarse dentro de Cloud CDN cuando sea necesario, y los navegadores pueden descubrir que el contenido se invalida cuando venza el TTL del cliente.

En el modo FORCE_CACHE_ALL, Cloud CDN suele pasar el mismo max-age al cliente que usa internamente para el almacenamiento en caché de proxy. Sin embargo, si se especifica un TTL de cliente y es un valor más bajo, el TTL de cliente se pasa al cliente en la directiva max-age en su lugar. Del mismo modo, enCACHE_ALL_STATIC en el modo TTL del cliente funciona como clamp para cualquiermax-age especifica el servidor de origenmax-age que se envían al navegador o al cliente no será mayor que el TTL de cliente configurado. Si no se especifica una max-age, la menor cantidad de TTL predeterminado y el valor TTL de cliente se usa como el max-age enviado al navegador o al cliente.

El valor del TTL de cliente no puede ser mayor que el TTL máximo.

Si hay un encabezado Expires presente en la respuesta de origen, se quita y se reemplaza por una directiva Cache-Control: max-age con el TTL adecuado.

Console

  1. En Google Cloud Console, ve a la página Balanceo de cargas.

    Ir a la página Balanceo de cargas

  2. Haz clic en el nombre del balanceador de cargas de HTTP(S) externo.
  3. Haz clic en Editar .
  4. En Configuración de backend, selecciona un backend y haz clic en Editar .
  5. Asegúrate de que la opción Habilitar Cloud CDN esté seleccionada.
  6. Asegúrate de que el modo de caché sea Almacenar en caché contenido estático (recomendado) o Forzar el almacenamiento en caché de todo el contenido. La anulación de los valores de TTL no es compatible cuando el modo de caché es Usar configuración de origen en función de los encabezados de control de caché.
  7. En Tiempo de actividad del cliente, selecciona un valor de hasta 86,400 segundos.
  8. Haz clic en Guardar.

gcloud

Para los servicios de backend, usa el comando gcloud compute backend-services create o gcloud compute backend-services update con la marca --client-ttl.

Para los buckets de backend, usa el comando gcloud compute backend-buckets create o gcloud compute backend-buckets update con la marca --client-ttl.

gcloud compute backend-services (create | update) BACKEND_SERVICE_NAME
    --client-ttl=CLIENT_TTL
gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME
    --client-ttl=CLIENT_TTL

Reemplaza CLIENT_TTL por un valor de hasta 86,400 segundos (1 día).

API

En el caso de los buckets de backend, usa la llamada a la API Method: backendBuckets.insert o Method: backendBuckets.update.

Para los servicios de backend, usa la llamada a la API Method: backendServices.insert o Method: backendServices.update.

Usa una de las siguientes llamadas a la API:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/BACKEND_BUCKET
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE

Agrega el siguiente fragmento al cuerpo de solicitud JSON:

"cdnPolicy": {
  "clientTtl": CLIENT_TTL
}

Reemplaza CLIENT_TTL por un valor de hasta 86,400 segundos (1 día).