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 do Google Cloud ou o console 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 Google Cloud console, acesse a página do Cloud CDN.

    Acessar 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 a serem invalidados, faça o seguinte:

    • Para Host, especifique um nome de 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 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 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 Google Cloud console
  • 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 Google Cloud console, acesse a página do Cloud CDN.

    Acessar 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 a serem invalidados, faça o seguinte:

    • Para Host, especifique um nome de host, a menos que você queira invalidar o caminho para todos os nomes de host.
    • Em Caminho, especifique o caminho e um asterisco como um 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 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 Google Cloud console
  • 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

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

    Acessar 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 a serem invalidados, para Tags de cache, especifique uma ou mais tags a serem invalidadas. 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 de tags separada 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 Google Cloud console
  • 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:

{
  "cacheTags": [
    "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

Embora seja possível invalidar tudo, isso é potencialmente arriscado. Avalie seus requisitos com cuidado antes de continuar.

Console

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

    Acessar 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 a serem invalidados, faça o seguinte:

    • Para Host, especifique um nome de 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 o 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 inclui o nome do host; o caminho pode usar um nome de arquivo explícito ou um asterisco como 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 Google Cloud console
  • 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 do pedido de invalidação ou encontrar uma lista definitiva de solicitações enviadas recentemente, use o Cloud Logging ou o Cloud Monitoring.

Console

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

    Acessar o Cloud CDN

  2. Clique em uma origem.

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

  4. Para conferir 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 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