Como usar configurações e modificações de TTL

Nesta página, fornecemos instruções para usar substituições de TTL com o Cloud CDN. As modificações de TTL oferecem um controle detalhado sobre por quanto tempo o Cloud CDN armazena seu conteúdo em cache antes de revalidá-lo.

Antes de começar

  • Leia sobre os modos de cache.

  • Verifique se o Cloud CDN está ativado. Para instruções, consulte Como usar o Cloud CDN.

  • Se necessário, atualize para a versão mais recente do SDK do Cloud:

    gcloud components update
    

Como definir o TTL padrão

Quando você define o modo de cache como armazenar em cache todo o conteúdo estático (CACHE_ALL_STATIC) ou todos os outros tipos de conteúdo (FORCE_CACHE_ALL), o time to live (TTL) padrão para o armazenamento em cache de conteúdo é de 3.600 segundos (1 hora).

Se quiser melhorar as taxas de ocorrência em cache de um conteúdo que não muda com frequência, é possível substituir o TTL padrão para que o Cloud CDN revalide o conteúdo na origem com menos frequência. O valor máximo permitido para o TTL padrão é de 31.622.400 segundos (1 ano). Objetos acessados com pouca frequência podem ser removidos do cache antes do TTL definido.

Definir um TTL padrão de 0 significa que a resposta será revalidada na origem, naqueles casos em que o TTL padrão se aplica.

Quando você define o modo de cache para armazenar todo o conteúdo, não importa o tipo de conteúdo (FORCE_CACHE_ALL), o TTL padrão substitui o TTL definido em todas as respostas (incluindo aquelas que têm um TTL definido pelos cabeçalhos de origem). Nesse modo, o TTL padrão fica visível para os clientes, porque o Cloud CDN define os atributos public e max-age das respostas exibidas aos clientes.

No modo CACHE_ALL_STATIC, o TTL padrão se aplica ao conteúdo em cache exibido por uma origem para respostas que não têm um TTL válido (cabeçalhos max-age, s-max-age ou Expires). No modo CACHE_ALL_STATIC, o TTL padrão não modifica o cabeçalho Cache-Control exibido aos clientes. Para modificar o cabeçalho Cache-Control no modo CACHE_ALL_STATIC, defina o TTL do cliente.

Quando você define o modo de cache para usar cabeçalhos de origem (USE_ORIGIN_HEADERS), o valor TTL padrão não se aplica e não pode ser configurado porque o Cloud CDN usa as diretivas de origem max-age ou s-max-age ou o cabeçalho Expires.

Console

  1. No Console do Google Cloud, acesse a página Balanceamento de carga.

    Acessar a página "Balanceamento de carga"

  2. Clique no nome do balanceador de carga HTTP(S) externo.
  3. Clique em Editar .
  4. Em Configuração de back-end, selecione um back-end e clique em Editar .
  5. Verifique se a opção Ativar o Cloud CDN está selecionada.
  6. Verifique se o modo de cache é Armazenar conteúdo estático em cache (recomendado) ou Forçar cache em todo o conteúdo. A substituição dos valores de TTL não é compatível quando o modo de cache é Usar configurações de origem baseadas em cabeçalhos de controle de cache.
  7. Em Tempo de vida padrão, selecione um valor.
  8. Clique em Save.

gcloud

Para serviços de back-end, use o comando gcloud compute backend-services create ou gcloud compute backend-services update com a sinalização --default-ttl.

Para buckets de back-end, use o comando gcloud compute backend-buckets create ou gcloud compute backend-buckets update com a sinalização --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

Substitua DEFAULT_TTL por um valor de até 31.622.400 segundos (1 ano).

API

Para buckets de back-end, use a chamada de API Method: backendBuckets.insert ou Method: backendBuckets.update.

Para serviços de back-end, use a chamada de API Method: backendServices.insert ou Method: backendServices.update.

Use uma das seguintes chamadas de 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

Adicione o seguinte snippet ao corpo da solicitação JSON:

"cdnPolicy": {
  "defaultTtl": DEFAULT_TTL
}

Substitua DEFAULT_TTL por um valor de até 31.622.400 segundos (1 ano).

Como definir o TTL máximo

O TTL máximo (máx) especifica o limite permitido para o conteúdo armazenado em cache por uma origem. As diretivas de cache que tentam definir um max-age ou s-maxage maior que o valor máximo de TTL, ou um cabeçalho Expires com mais de cdnPolicy.maxTtl segundos no futuro, são limitadas ao valor do TTL máximo.

Quando você define o modo de cache para armazenar todo o conteúdo estático (CACHE_ALL_STATIC), o TTL máximo padrão para o armazenamento é de 86.400 segundos (1 dia). O valor máximo permitido é de 31.622.400 segundos (1 ano). No entanto, objetos acessados com pouca frequência podem ser removidos do cache antes do TTL definido.

Com FORCE_CACHE_ALL, o TTL está definido como --default-ttl e não há necessidade de definir um --max-ttl.

O valor do TTL máximo pode ser igual ou maior que o valor do TTL padrão.

Console

  1. No Console do Google Cloud, acesse a página Balanceamento de carga.

    Acessar a página "Balanceamento de carga"

  2. Clique no nome do balanceador de carga HTTP(S) externo.
  3. Clique em Editar .
  4. Em Configuração de back-end, selecione um back-end e clique em Editar .
  5. Verifique se a opção Ativar o Cloud CDN está selecionada.
  6. Verifique se o modo de cache é Armazenar conteúdo estático em cache (recomendado).
  7. Em Tempo máximo para viver, selecione um valor.
  8. Clique em Save.

gcloud

Para serviços de back-end, use o comando gcloud compute backend-services create ou gcloud compute backend-services update com a sinalização --max-ttl.

Para buckets de back-end, use o comando gcloud compute backend-buckets create ou gcloud compute backend-buckets update com a sinalização --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

Substitua MAX_TTL por um valor de até 31.622.400 segundos (1 ano).

API

Para buckets de back-end, use a chamada de API Method: backendBuckets.insert ou Method: backendBuckets.update.

Para serviços de back-end, use a chamada de API Method: backendServices.insert ou Method: backendServices.update.

Use uma das seguintes chamadas de 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

Adicione o seguinte snippet ao corpo da solicitação JSON:

"cdnPolicy": {
  "maxTtl": MAX_TTL
}

Substitua MAX_TTL por um valor de até 31.622.400 segundos (1 ano).

Como modificar o TTL do cliente

Para todos os modos de cache, o Cloud CDN transmite cabeçalhos Cache-Control para o cliente.

O TTL do cliente permite que você defina um TTL mais curto para navegadores ou clientes. Assim, os clientes podem revalidar conteúdo no Cloud CDN com mais frequência, sem exigir revalidação na origem. O valor do TTL do cliente não pode ser maior que o TTL máximo, mas pode ser igual.

Qualquer resposta armazenável em cache tem a diretiva max-age ajustada para corresponder ao valor do TTL do cliente. O cabeçalho Expires será removido se --client-ttl for definido, porque --client-ttl está definido para corresponder à diretiva Cache-Control: max-age.

Console

  1. No Console do Google Cloud, acesse a página Balanceamento de carga.

    Acessar a página "Balanceamento de carga"

  2. Clique no nome do balanceador de carga HTTP(S) externo.
  3. Clique em Editar .
  4. Em Configuração de back-end, selecione um back-end e clique em Editar .
  5. Verifique se a opção Ativar o Cloud CDN está selecionada.
  6. Verifique se o modo de cache é Armazenar conteúdo estático em cache (recomendado) ou Forçar cache em todo o conteúdo. A substituição dos valores de TTL não é compatível quando o modo de cache é Usar configurações de origem baseadas em cabeçalhos de controle de cache.
  7. Em Tempo de vida do cliente, selecione um valor de até 86.400 segundos.
  8. Clique em Save.

gcloud

Para serviços de back-end, use o comando gcloud compute backend-services create ou gcloud compute backend-services update com a sinalização --client-ttl.

Para buckets de back-end, use o comando gcloud compute backend-buckets create ou gcloud compute backend-buckets update com a sinalização --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

Substitua CLIENT_TTL por um valor de até 86.400 segundos (1 dia).

API

Para buckets de back-end, use a chamada de API Method: backendBuckets.insert ou Method: backendBuckets.update.

Para serviços de back-end, use a chamada de API Method: backendServices.insert ou Method: backendServices.update.

Use uma das seguintes chamadas de 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

Adicione o seguinte snippet ao corpo da solicitação JSON:

"cdnPolicy": {
  "clientTtl": CLIENT_TTL
}

Substitua CLIENT_TTL por um valor de até 86.400 segundos (1 dia).