Visão geral da invalidação de cache

Nesta página, você encontrará uma visão geral da invalidação de cache do Cloud CDN.

O que é invalidação de cache?

Depois que um objeto é armazenado em cache, ele costuma permanecer em cache até expirar ou ser excluído para dar espaço a conteúdos novos. Controle o prazo de validade por meio de cabeçalhos HTTP padrão.

É melhor excluir um objeto do cache antes do prazo normal de validade. Para forçar um objeto ou conjunto de objetos a ser ignorado pelo cache, solicite uma invalidação de cache.

É importante garantir que o servidor de origem esteja retornando o conteúdo correto antes de solicitar a invalidação de cache. Caso contrário, quando o Cloud CDN solicitar o conteúdo de novo, ele poderá armazenar o conteúdo incorreto em cache.

Padrões de caminho

Cada solicitação de invalidação especifica um padrão de caminho que identifica o objeto ou conjunto de objetos a ser invalidado. O padrão de caminho pode ser um caminho específico, como /cat.jpg, ou uma estrutura de diretório inteira, como /pictures/*. As regras a seguir se aplicam a padrões de caminho:

  • O padrão de caminho precisa começar com /.
  • Não é possível incluir ? ou #.
  • Não é possível incluir um *, exceto como o caractere final após um /.
  • Se terminar com /*, a string anterior é um prefixo e todos os objetos com caminhos que comecem com esse prefixo são invalidados.

O padrão de caminho é comparado ao componente de caminho do URL, que é tudo entre o nome do host e qualquer ? ou # que possa estar presente.

Se você tiver URLs que contenham uma string de consulta, por exemplo, /images.php?image=fred.png, não será possível invalidar objetos seletivamente diferentes por string de consulta. Por exemplo, se você tiver duas imagens, /images.php?image=fred.png e /images.php?image=barney.png, não será possível invalidar apenas fred.png. Para invalidar todas as imagens exibidas por images.php, use /images.php como padrão de caminho.

Como invalidar o cache para apenas um host

Normalmente, a invalidação de cache se aplica aos caminhos de todos os seus nomes de host. Por exemplo, se você tiver example.com e example2.com apontados para o mesmo balanceador de carga e invalidar /images/cat.jpg, tanto example.com/images/cat.jpg quanto example2.com/images/cat.jpg serão invalidados.

É possível restringir a invalidação a apenas um dos hosts adicionando a sinalização --host ao comando.

Limitações

A invalidação é usada em circunstâncias excepcionais, não como parte do fluxo normal. As invalidações não afetam as cópias em cache nos caches do navegador da Web ou em caches operados por provedores de serviços à Internet de terceiros.

Como alternativa às invalidações de rotina, é possível definir proativamente os prazos de validade adequados nas respostas ou usar URLs distintos para versões diferentes do conteúdo. Para mais informações sobre os prazos de validade, consulte Prazos de validade e solicitações de validação.

As invalidações são limitadas por taxa. É possível enviar, no máximo, uma invalidação por minuto. Porém, essa invalidação pode ser de qualquer tamanho. Invalidar /images/fred.png conta como uma invalidação. Invalidar /images/* também conta como uma invalidação.

Invalide apenas o que for preciso, porque muitas invalidações podem causar um pico nas solicitações que os caches estavam exibindo para atingir suas instâncias ou buckets de maneira repentina.

Como o Cloud CDN é um sistema distribuído, ele pode relatar que uma invalidação foi concluída mesmo que um número pequeno de caches não tenha processado a solicitação de invalidação ainda. Esta situação é extremamente rara e se corrigirá automaticamente.

Como solicitar a invalidação de cache com a referência de serviço entre projetos da VPC compartilhada

Quando você usa um balanceador de carga de aplicativo externo global com referência de serviço entre projetos de VPC compartilhada, por padrão, os administradores de projetos de serviço não têm as permissões necessárias para solicitar invalidações de cache. Isso ocorre porque a invalidação de cache é configurada no projeto de front-end, ou seja, o projeto que tem a regra de encaminhamento, o proxy de destino e o mapa de URL do balanceador de carga. Assim, as invalidações de cache só podem ser emitidas por principais que tenham os papéis do IAM para configurar recursos relacionados ao balanceador de carga nos projetos de front-end (por exemplo, o papel de administrador da rede do Compute).

Os administradores de serviços, que controlam o provisionamento dos serviços de back-end em um projeto separado, precisam trabalhar com o administrador do balanceador de carga do projeto de front-end para emitir a invalidação de cache dos serviços entre projetos.

A seguir