Alterar as configurações e substituições de TTL

Esta página descreve como alterar 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 conteúdo em cache antes de revalidá-lo.

As configurações de TTL estão resumidas na tabela a seguir.

  TTL padrão TTL máx. TTL do cliente
Motivo para configurar Melhorar as taxas de ocorrência em cache de conteúdo que não muda com frequência Forçar o Cloud CDN a revalidar conteúdo com mais frequência do que o especificado por um cabeçalho de origem Forçar os clientes a revalidar conteúdo com uma frequência maior que a do Cloud CDN
Usado quando Para uma resposta bem-sucedida, uma das opções a seguir é verdadeira:
  • modo de cache = FORCE_CACHE_ALL
  • modo de cache = CACHE_ALL_STATIC, o tipo de conteúdo é armazenável em cache estaticamente, e um TTL não é definido pelos cabeçalhos de origem (max-age, s-maxage ou Expires)
Todas estas opções são verdadeiras:
  • modo de cache = CACHE_ALL_STATIC
  • Um TTL é definido por cabeçalhos de origem (max-age, s-maxage ou Expires)
  • O TTL especificado no cabeçalho de origem é maior que o valor máximo de TTL
Uma destas opções é verdadeira:
  • modo de cache = FORCE_CACHE_ALL e o valor de TTL do cliente é menor que o TTL do Cloud CDN
  • modo de cache = CACHE_ALL_STATIC, e o TTL do cliente é menor que o TTL definido pelo cabeçalho de origem (ou TTL padrão se não houver informações sobre o cabeçalho de origem)
Valor padrão 3.600 segundos (1 hora) 86.400 segundos (1 dia) 3.600 segundos (1 hora)
Valor máx. permitido 31.622.400 segundos (1 ano) 31.622.400 segundos (1 ano) 31.622.400 segundos (1 ano)
Observações Precisa ser menor ou igual ao TTL máx.

--default-ttl=0
força a resposta a ser revalidada na origem
Precisa ser menor ou igual ao TTL máx.

Antes de começar

  • Leia sobre os modos de cache.

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

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

    gcloud components update
    

Definir o TTL padrão

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. Os objetos acessados com pouca frequência podem ser removidos do cache antes do TTL definido.

Quando o modo de cache é FORCE_CACHE_ALL, o TTL padrão substitui o TTL definido em todas as respostas, incluindo aquelas que têm um TTL definido por 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 disponibilizadas aos clientes.

No modo CACHE_ALL_STATIC, o TTL padrão se aplica ao conteúdo em cache disponibilizado por uma origem para respostas que não têm um TTL válido (cabeçalho max-age, s-maxage 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-maxage ou o cabeçalho Expires.

Console

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

    Acesse Balanceamento de carga

  2. Clique no nome do balanceador de carga de aplicativo 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 com base em cabeçalhos Cache-Control.
  7. Em Time to live (TTL) padrão, selecione um valor.
  8. Clique em Salvar.

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).

Definir o TTL máximo

O TTL máximo (máx.) especifica o TTL máximo permitido no Cloud CDN para o conteúdo armazenado em cache disponibilizado por uma origem.

O TTL de uma resposta será limitado pelo TTL máx. se uma das seguintes condições for verdadeira:

  • A resposta tenta definir um max-age ou s-maxage superior ao valor máx. de TTL.
  • A resposta tem um cabeçalho Expires com mais de cdnPolicy.maxTtl segundos no futuro.

A configuração de TTL máx. não altera o valor max-age enviado ao cliente. Para mais informações, consulte Substituição do TTL máximo do cliente. A configuração de TTL máx. só afeta o tempo em que o Cloud CDN tenta armazenar em cache o conteúdo.

Essa configuração só é usada quando o modo de cache é CACHE_ALL_STATIC. O valor máximo permitido é de 31.622.400 segundos (1 ano). Os objetos acessados com pouca frequência podem ser removidos do cache antes do TTL definido.

Com FORCE_CACHE_ALL, o TTL sempre é definido como o TTL padrão. Não é possível definir um TTL máx.

Console

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

    Acesse Balanceamento de carga

  2. Clique no nome do balanceador de carga de aplicativo 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 Time to live (TTL) máximo, selecione um valor.
  8. Clique em Salvar.

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).

Substituir 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 máximo para o que é enviado a navegadores ou clientes, para que os clientes revalidem o conteúdo com o Cloud CDN com mais frequência, sem exigir revalidação na origem. Dessa forma, o conteúdo pode ser invalidado no Cloud CDN quando necessário e os navegadores podem descobrir que o conteúdo está invalidado assim que o TTL do cliente expira.

No modo FORCE_CACHE_ALL, o Cloud CDN normalmente transmite o mesmo max-age ao cliente que é usado internamente para o armazenamento em cache do proxy. No entanto, se o TTL de um cliente for especificado e for um valor menor, o TTL do cliente será transmitido ao cliente na diretiva max-age. Da mesma forma, no modo CACHE_ALL_STATIC, o TTL do cliente atua como um limite para qualquer max-age especificada pelo servidor de origem para que a max-age enviada ao navegador ou ao cliente não seja maior que o TTL configurado do cliente. Se nenhuma max-age for especificada pela origem, o menor valor de TTL do Cloud CDN e do cliente é usado como a max-age enviada ao navegador ou cliente.

Se um cabeçalho Expires estiver presente na resposta de origem, ele será removido e substituído por uma diretiva Cache-Control: max-age com o TTL adequado. Para respostas de erro, se nenhum TTL de armazenamento em cache negativo for definido, o cabeçalho Cache-Control também será removido.

Como o TTL do cliente é tratado como um valor máximo para o que é enviado a navegadores ou clientes, não é possível usá-lo para aumentar o valor max-age que seria enviado. Se o valor de max-age enviado aos navegadores e clientes for menor que o previsto, aumente o valor da diretiva max-age na resposta retornada pela origem ou ajuste adequadamente as configurações do TTL padrão ou do armazenamento em cache negativo.

Normalmente, uma configuração de TTL do cliente de cerca de um dia é um bom limite superior prático. Uma configuração de um dia significa que os navegadores fazem check-in com pelo menos essa frequência e podem aprender mais sobre invalidações de cache que podem ter ocorrido no Cloud CDN. É possível definir o TTL do cliente muito mais alto (até um ano) como uma maneira de permitir que a origem e os TTLs configurados controlem totalmente o que é enviado ao cliente. Isso pode ser útil se você não quiser que o navegador realize validações mais frequentes no Cloud CDN.

Console

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

    Acesse Balanceamento de carga

  2. Clique no nome do balanceador de carga de aplicativo 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 com base em cabeçalhos Cache-Control.
  7. Em Time to live (TTL) do cliente, selecione um valor de até 1 ano.
  8. Clique em Salvar.

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é 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": {
  "clientTtl": CLIENT_TTL
}

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

A seguir