Invalidar conteúdo armazenado em cache

Esta página descreve como invalidar conteúdo armazenado em cache no Cloud CDN.

Por exemplo, se um arquivo localizado em /images/file.jpg tiver sido armazenado em cache e precisar ser invalidado, será possível usar vários métodos para invalidá-lo, dependendo de você querer afetar apenas esse arquivo ou um escopo mais amplo. Em cada caso, é possível executar a invalidação para todos os nomes do host ou apenas um.

Para saber mais sobre a invalidação de cache, consulte Visão geral da invalidação de cache.

Antes de começar

Use a CLI do Google Cloud ou o console do Google Cloud para realizar invalidações.

É possível acessar a CLI do Google Cloud de duas maneiras:

  • Instale a CLI do Google Cloud seguindo as instruções em Como instalar com apt-get. Se você nunca tiver usado a CLI do Google Cloud, primeiro execute gcloud init para autenticar.

  • Use o Cloud Shell, que já vem com o gcloud instalado.

Para criar um papel personalizado com as permissões necessárias, consulte Como criar e gerenciar funções personalizadas.

Para adicionar um papel predefinido, use o Guia de início rápido do IAM.

Invalidar apenas um arquivo

Console

  1. No console do Google Cloud , acesse a página Cloud CDN.

    Acesse o Cloud CDN

  2. Clique em uma origem.

  3. Clique na guia Invalidação de cache.

  4. Em Balanceadores de carga associados, selecione o balanceador de carga.

  5. Em Especificar objetos por invalidar, faça o seguinte:

    • Em Host, especifique um nome do host, a menos que você queira invalidar o caminho para todos os nomes de host.
    • Em Caminho, especifique o caminho e o nome do arquivo, por exemplo, /images/file.jpg.
  6. Clique em Invalidar.

gcloud

Use o comando gcloud compute url-maps invalidate-cdn-cache.

Para especificar apenas um arquivo para invalidação, use a sinalização --path com o nome de arquivo.

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

Substitua URL_MAP_NAME pelo nome do mapa de URL. Para listar seus os mapas de URLs, use o comando gcloud compute url-maps list.

Para fazer a invalidação em apenas um host, adicione a sinalização --host. Por exemplo, --host host1.com.

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

Por padrão, a CLI do Google Cloud aguarda a conclusão da invalidação. Para realizar a invalidação em segundo plano, anexe --async à linha de comando.

API

Use o método urlMaps.invalidateCache.

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

Substitua:

  • PROJECT_ID: o ID do projeto do console do Google Cloud
  • URL_MAP_NAME: o nome do mapa de URL.

Para especificar um arquivo para invalidação, use o seguinte exemplo de corpo da solicitação JSON:

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

Para invalidar o arquivo em apenas um host, use o seguinte exemplo de corpo da solicitação JSON:

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

Invalidar o diretório inteiro

Console

  1. No console do Google Cloud , acesse a página Cloud CDN.

    Acesse o Cloud CDN

  2. Clique em uma origem.

  3. Clique na guia Invalidação de cache.

  4. Em Balanceadores de carga associados, selecione o balanceador de carga.

  5. Em Especificar objetos por invalidar, faça o seguinte:

    • Em Host, especifique um nome do host, a menos que você queira invalidar o caminho para todos os nomes de host.
    • Em Caminho, especifique o caminho e um asterisco como caractere curinga, por exemplo, /images/*.
  6. Clique em Invalidar.

gcloud

Use o comando gcloud compute url-maps invalidate-cdn-cache.

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

Substitua URL_MAP_NAME pelo nome do mapa de URL.

Para fazer a invalidação em apenas um host, adicione a sinalização --host. Por exemplo, --host host1.com.

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

API

Use o método urlMaps.invalidateCache.

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

Substitua:

  • PROJECT_ID: o ID do projeto do console do Google Cloud
  • URL_MAP_NAME: o nome do mapa de URL.

Para especificar um diretório para invalidação, use o seguinte exemplo de corpo da solicitação JSON:

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

Para invalidar um diretório em apenas um host, use o seguinte exemplo de corpo da solicitação JSON:

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

Invalidar por tags de cache

Console

  1. No console do Google Cloud , acesse a página Cloud CDN.

    Acesse o Cloud CDN

  2. Clique em uma origem.

  3. Clique na guia Invalidação de cache.

  4. Em Balanceadores de carga associados, selecione o balanceador de carga.

  5. Em Especificar objetos para invalidar, em Tags de cache, especifique uma ou mais tags para invalidar. Use espaços ou vírgulas para separar as tags.

  6. Clique em Invalidar.

gcloud

Use o comando gcloud beta compute url-maps invalidate-cdn-cache.

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

Substitua:

  • URL_MAP_NAME: o nome do mapa de URL.
  • TAGS: uma tag ou uma lista separada por vírgulas de tags. Também é possível especificar essa sinalização até 10 vezes.

Por exemplo, se a resposta do back-end incluir um cabeçalho Cache-Tag com um ID do usuário opaco, como um UUID4 ou outra forma de GUID, você poderá invalidar todo o conteúdo de um usuário específico usando a sinalização tag. Além disso, para invalidar o conteúdo de apenas um host, como seu ambiente de teste, adicione a sinalização --host.

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

API

Use o método urlMaps.invalidateCache.

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

Substitua:

  • PROJECT_ID: o ID do projeto do console do Google Cloud
  • URL_MAP_NAME: o nome do mapa de URL.

Para especificar tags de cache para invalidação, use o seguinte exemplo de corpo da solicitação JSON:

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

É possível especificar uma única tag ou uma lista separada por vírgulas de tags.

Para invalidar por tags de cache apenas para um host, use o seguinte exemplo de corpo da solicitação JSON:

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

Invalidar tudo

Embora seja possível invalidar tudo, isso pode ser arriscado. Avalie seus requisitos com atenção antes de continuar.

Console

  1. No console do Google Cloud , acesse a página Cloud CDN.

    Acesse o Cloud CDN

  2. Clique em uma origem.

  3. Clique na guia Invalidação de cache.

  4. Em Balanceadores de carga associados, selecione o balanceador de carga.

  5. Em Especificar objetos por invalidar, faça o seguinte:

    • Em Host, especifique um nome do host, a menos que você queira invalidar o caminho para todos os nomes de host.
    • Em Caminho, use um asterisco, por exemplo, /*.
  6. Clique em Invalidar e em Confirmar para indicar que você quer que Cloud CDN invalide tudo.

gcloud

Use o comando gcloud compute url-maps invalidate-cdn-cache.

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

Substitua:

  • URL_MAP_NAME: o nome do mapa de URL.
  • /*: o caminho do URL que você quer invalidar. Não inclua o nome do host. O caminho pode usar um nome de arquivo explícito ou um asterisco como caractere curinga

Para fazer a invalidação em apenas um host, adicione a sinalização --host. Por exemplo, --host host1.com.

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

API

Use o método urlMaps.invalidateCache.

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

Substitua:

  • PROJECT_ID: o ID do projeto do console do Google Cloud
  • URL_MAP_NAME: o nome do mapa de URL.

Para especificar um caminho do URL para invalidação, use o seguinte exemplo de corpo da solicitação JSON:

{
  "path": "/*"
}

Para invalidar um caminho do URL de apenas um host, use o seguinte exemplo de corpo da solicitação JSON:

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

Visualize o status da sua solicitação de invalidação

O Cloud CDN emite duas linhas de registro por invalidação: uma quando a invalidação é aceita e outra quando ela é concluída. A primeira tem as informações de host e caminho.

Para visualizar o status da solicitação de invalidação ou encontrar uma lista definitiva de solicitações enviadas recentemente, use o Cloud Logging ou o Cloud Monitoring.

Console

  1. No console do Google Cloud , acesse a página Cloud CDN.

    Acesse o Cloud CDN

  2. Clique em uma origem.

  3. Clique na guia Invalidação de cache.

  4. Para visualizar o status e os resultados da solicitação de invalidação, clique em Acessar o Cloud Logging.

gcloud

Confira a seguir um exemplo de comando que usa o Cloud Logging:

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

Confira a seguir um exemplo de consulta que usa o Monitoring:

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

A seguir