Invalidar conteúdo armazenado em cache

Nesta página, você aprenderá a 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, você poderá usar vários métodos para invalidá-lo, dependendo de você querer afetar apenas esse arquivo ou tiver 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 ou o console do Google Cloud para realizar invalidações.

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

Para criar um papel personalizado com a permissão necessária, consulte Como criar e gerenciar papéis personalizados.

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 do Cloud CDN.

    Acessar a página do Cloud CDN

  2. Em Balanceadores de carga associados, clique no nome do balanceador de carga.
  3. Clique na guia Invalidação de cache.
  4. Insira o caminho do arquivo.
    • Se quiser invalidar o caminho para todos os nomes de host, insira somente o caminho, por exemplo: /images/file.jpg.
    • Se você quiser invalidar um caminho para apenas um nome de host, especifique o nome do host como parte do caminho (por exemplo: host1.com/images/file.jpg).
  5. Clique em Invalidar.

gcloud

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

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

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

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

Para invalidar apenas um host, adicione a flag --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 Google Cloud CLI aguarda a conclusão da invalidação. Para realizar a invalidação em segundo plano, anexe --async à linha de comando.

API

Use a chamada de API do 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 de solicitação JSON:

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

Para invalidar o arquivo de 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 do Cloud CDN.

    Acessar a página do Cloud CDN

  2. Em Balanceadores de carga associados, clique no nome do balanceador de carga.
  3. Clique na guia Invalidação de cache.
  4. Insira o caminho do diretório e o caractere curinga (/path/to/file/*).
    • Se você quiser invalidar o diretório inteiro para todos os nomes de host, digite apenas o caminho e o caractere curinga (por exemplo: /images/*).
    • Se quiser invalidar o diretório inteiro para apenas um nome de host, especifique o nome desse host como parte do caminho, por exemplo, host1.com/images/*.
  5. 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 seu mapa de URL.

Para invalidar apenas um host, adicione a flag --host, por exemplo, --host host1.com.

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

API

Use a chamada de API do 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 de solicitação JSON:

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

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

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

Invalidar por tags de cache

Console

O uso de tags de cache para invalidação não é aceito no console do Google Cloud.

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 de tags separadas por vírgulas. Como alternativa, é possível especificar essa flag até 10 vezes.

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

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

API

Use a chamada de API do 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 de solicitação JSON:

{
  "tags": "tag1,tag2"
}

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

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

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

Invalidar tudo

Console

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

    Acessar a página do Cloud CDN

  2. Em Balanceadores de carga associados, clique no nome do balanceador de carga.
  3. Clique na guia Invalidação de cache.
  4. Insira apenas a raiz e o caractere curinga (/*).
    • Se quiser invalidar tudo para todos os nomes de host, insira somente /* no campo.
    • Se quiser invalidar tudo para um único nome de host, especifique o nome do host como parte do caminho, por exemplo, host1.com/*.
  5. 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 "/*"

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 caractere curinga

Para invalidar apenas um host, adicione a flag --host, por exemplo, --host host1.com.

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

API

Use a chamada de API do 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 de URL para invalidação, use o seguinte exemplo de corpo de solicitação JSON:

{
  "path": "/*"
}

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

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

Conferir 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 conferir 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.

Confira a seguir um exemplo de comando que usa a geração de registros:

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

Confira a seguir um exemplo de consulta que usa a Monitoração:

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

A seguir