Invalide o conteúdo em cache

Esta página descreve como invalidar o conteúdo em cache da RFC na nuvem.

Por exemplo, se um ficheiro localizado em /images/file.jpg tiver sido colocado em cache e precisar de ser invalidado, pode usar vários métodos para o invalidar, consoante queira afetar apenas esse ficheiro ou um âmbito mais amplo. Em cada caso, pode invalidar para todos os nomes de anfitriões ou apenas para um nome de anfitrião.

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

Antes de começar

Pode usar a Google Cloud CLI ou a Google Cloud consola para fazer invalidações.

Pode aceder à CLI gcloud de duas formas:

  • Instale a CLI Google Cloud seguindo as instruções em Instalar com o apt-get. Se não tiver usado a CLI do Google Cloud anteriormente, execute primeiro o comando gcloud init para fazer a autenticação.

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

Para criar uma função personalizada com as autorizações necessárias, consulte o artigo Crie e faça a gestão de funções personalizadas.

Para adicionar uma função predefinida, use o início rápido do IAM.

Invalide apenas um ficheiro

Consola

  1. Na Google Cloud consola, aceda à página Cloud CDN.

    Aceda ao Cloud CDN

  2. Clique numa origem.

  3. Clique no separador Invalidação da cache.

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

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

    • Para Anfitrião, a menos que queira invalidar o caminho para todos os nomes de anfitrião, especifique um nome de anfitrião.
    • Para Caminho, especifique o caminho e o nome do ficheiro, por exemplo: /images/file.jpg.
  6. Clique em Anular.

gcloud

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

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

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

Substitua URL_MAP_NAME pelo nome do seu mapa de URLs. Para apresentar uma lista dos seus mapeamentos de URLs, use o comando gcloud compute url-maps list.

Para invalidar apenas um anfitrião, 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 predefinição, a CLI gcloud aguarda até que a invalidação esteja concluída. Para realizar a invalidação em segundo plano, anexe --async à linha de comandos.

API

Use o urlMaps.invalidateCache método.

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

Substitua o seguinte:

  • PROJECT_ID: o Google Cloud ID do projeto da consola
  • URL_MAP_NAME: o nome do mapa de URLs

Para especificar um ficheiro para invalidação, use o seguinte exemplo de corpo do pedido JSON:

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

Para invalidar o ficheiro apenas para um anfitrião, use o seguinte exemplo de corpo do pedido JSON:

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

Invalidar todo o diretório

Consola

  1. Na Google Cloud consola, aceda à página Cloud CDN.

    Aceda ao Cloud CDN

  2. Clique numa origem.

  3. Clique no separador Invalidação da cache.

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

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

    • Para Anfitrião, a menos que queira invalidar o caminho para todos os nomes de anfitrião, especifique um nome de anfitrião.
    • Para Caminho, especifique o caminho e um asterisco como um caráter universal, por exemplo, /images/*.
  6. Clique em Anular.

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

Para invalidar apenas um anfitrião, 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 o urlMaps.invalidateCache método.

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

Substitua o seguinte:

  • PROJECT_ID: o Google Cloud ID do projeto da consola
  • URL_MAP_NAME: o nome do mapa de URLs

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

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

Para invalidar um diretório para apenas um anfitrião, use o seguinte corpo do pedido JSON de exemplo:

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

Invalide por etiquetas de cache

Consola

  1. Na Google Cloud consola, aceda à página Cloud CDN.

    Aceda ao Cloud CDN

  2. Clique numa origem.

  3. Clique no separador Invalidação da cache.

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

  5. Em Especificar objetos a invalidar, para Etiquetas de cache, especifique uma ou mais etiquetas a invalidar. Use espaços ou vírgulas para separar etiquetas.

  6. Clique em Anular.

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 o seguinte:

  • URL_MAP_NAME: o nome do mapa de URLs
  • TAGS: uma etiqueta ou uma lista de etiquetas separadas por vírgulas; em alternativa, pode especificar esta flag até 10 vezes

Por exemplo, se a resposta do back-end incluir um cabeçalho Cache-Tag com um ID do utilizador opaco, como um UUID4 ou outra forma de GUID, pode invalidar todo o conteúdo de um utilizador específico através da flag tag. Além disso, para invalidar conteúdo apenas para um anfitrião, como o seu ambiente de teste, 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 o urlMaps.invalidateCache método.

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

Substitua o seguinte:

  • PROJECT_ID: o Google Cloud ID do projeto da consola
  • URL_MAP_NAME: o nome do mapa de URLs

Para especificar etiquetas de cache para invalidação, use o seguinte exemplo de corpo do pedido JSON:

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

Pode especificar uma única etiqueta ou uma lista de etiquetas separadas por vírgulas.

Para invalidar por etiquetas de cache apenas para um anfitrião, use o seguinte corpo do pedido JSON de exemplo:

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

Invalidar tudo

Embora possa invalidar tudo, esta ação é potencialmente arriscada. Avalie cuidadosamente os seus requisitos antes de continuar.

Consola

  1. Na Google Cloud consola, aceda à página Cloud CDN.

    Aceda ao Cloud CDN

  2. Clique numa origem.

  3. Clique no separador Invalidação da cache.

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

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

    • Para Anfitrião, a menos que queira invalidar o caminho para todos os nomes de anfitrião, especifique um nome de anfitrião.
    • Para Caminho, use um asterisco, por exemplo, /*.
  6. Clique em Anular e, de seguida, em Confirmar para indicar que quer que o Cloud CDN anule tudo.

gcloud

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

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

Substitua o seguinte:

  • URL_MAP_NAME: o nome do mapa de URLs
  • /*: o caminho do URL que quer invalidar; não inclui o nome do anfitrião; o caminho pode usar um nome de ficheiro explícito ou um asterisco como caráter universal

Para invalidar apenas um anfitrião, 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 o urlMaps.invalidateCache método.

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

Substitua o seguinte:

  • PROJECT_ID: o Google Cloud ID do projeto da consola
  • URL_MAP_NAME: o nome do mapa de URLs

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

{
  "path": "/*"
}

Para invalidar o caminho de URL apenas para um anfitrião, use o seguinte corpo do pedido JSON de exemplo:

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

Veja o estado do seu pedido de invalidação

A RFC na nuvem emite duas linhas de registo por invalidação, uma quando a invalidação é aceite e outra quando está concluída. O primeiro tem as informações do anfitrião e do caminho.

Para ver o estado do seu pedido de invalidação ou encontrar uma lista definitiva de pedidos enviados recentemente, pode usar o Cloud Logging ou o Cloud Monitoring.

Consola

  1. Na Google Cloud consola, aceda à página Cloud CDN.

    Aceda ao Cloud CDN

  2. Clique numa origem.

  3. Clique no separador Invalidação da cache.

  4. Para ver o estado e os resultados do pedido de invalidação, clique em Aceder ao Cloud Logging.

gcloud

Segue-se um exemplo de comando que usa o Logging:

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

Segue-se um exemplo de consulta que usa a monitorização:

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

O que se segue?