A invalidação do cache, às vezes chamada de limpeza de cache, é o processo de declaração de conteúdo em cache como inválido. Isso faz com que a entrada seja removida do cache e recarregada pelo servidor de origem na próxima vez que o conteúdo for solicitado.
O Media CDN oferece suporte a várias maneiras de selecionar o conteúdo a ser invalidado, da seguinte maneira:
- Caminho do host e do URL
- Prefixo de URL (caractere curinga)
- Tags de cache, incluindo tags integradas para
status
,origin
econtent-type
É possível combinar esses parâmetros de invalidação para visar respostas específicas em cache e minimizar a carga de origem no preenchimento de cache subsequente.
Sintaxe de invalidação compatível
A sintaxe de invalidação compatível é a seguinte:
Tipo | Sintaxe | Exemplo |
---|---|---|
Invalidação de host | Invalidar respostas armazenadas em cache para o host especificado. |
gcloud edge-cache services invalidate-cache
SERVICE_NAME \
|
Invalidação de caminho | Invalidar as respostas armazenadas em cache para o caminho ou prefixo de caminho especificado. |
gcloud edge-cache services invalidate-cache
SERVICE_NAME \
gcloud edge-cache services invalidate-cache
SERVICE_NAME \
|
Invalidação de tag de cache no código de status HTTP, nome da origem ou tipo MIME |
Invalidar respostas armazenadas em cache com uma tag correspondente. Várias tags são tratadas como um valor booleano OR .
|
gcloud edge-cache services invalidate-cache
SERVICE_NAME \
gcloud edge-cache services invalidate-cache
SERVICE_NAME \
|
Observações:
- Até 10 tags de cache podem ser especificadas em uma única solicitação de invalidação.
- É possível combinar
host
,path
etags
em uma única solicitação de invalidação. Eles são tratados como um valor booleanoAND
. - Quando várias tags de cache são especificadas, elas são tratadas como um valor booleano
OR
. Por exemplo, se você especificar--tags="status=404,origin=staging-origin"
, todas as respostas com uma tag de cachestatus=404
serão invalidadas, assim como todas as respostas com uma tag de cacheorigin=staging-origin
.
Tags de cache
As tags de cache (ou chaves alternativas) permitem invalidar conteúdo com base em metadados arbitrários.
Essas tags são definidas pelo seguinte:
- Configurar o cabeçalho HTTP
Cache-Tag
em uma resposta de origem, com tags especificadas como uma lista de valores separados por vírgulas. - Tags integradas com base no código de status HTTP da resposta, no tipo MIME
do cabeçalho de resposta HTTP
Content-Type
ou no nome da origem em que a resposta foi buscada.
Quando várias tags são especificadas em uma única solicitação de invalidação, elas são tratadas como um valor booleano OR
.
Veja o exemplo a seguir.
Você tem os seguintes objetos armazenados em cache:
- Objeto 1 armazenado em cache com as tags
status=200
,content-type=video/mp4
- Objeto 2 armazenado em cache com as tags
status=404
,content-type=text/plain
- Objeto 3 armazenado em cache com as tags
status=200
,content-type=application/x-mpegurl
- Objeto 1 armazenado em cache com as tags
Você emite uma solicitação para invalidar objetos com
tags="status=200,content-type=text/plain"
.Resultado: todos os três objetos armazenados em cache são invalidados ao mesmo tempo. Isso evita a necessidade de especificar todas as combinações de tags possíveis, algumas das quais podem ser desconhecidas.
Observações:
- As tags de cache padrão não são incluídas na resposta do cliente porque refletem os cabeçalhos atuais (como a linha de status ou o Content-Type) ou os detalhes de configuração internos.
- As tags de cache enviadas pela origem no cabeçalho de resposta HTTP
Cache-Tag
são enviadas ao cliente. Se quiser evitar que eles sejam enviados ao cliente, use o recursoresponseHeadersToRemove
em umrouteRule
para remover o cabeçalhoCache-Tag
. Para ver exemplos, consulte a documentação sobre cabeçalhos personalizados.
Tags integradas
As respostas têm as seguintes tags de cache aplicadas automaticamente para oferecer suporte à invalidação de conteúdo com base no código de status, no tipo MIME ou na origem em que o conteúdo foi buscado. Não é preciso especificar essas tags nas respostas de origem.
Tag | Detalhes |
---|---|
status=HTTP_STATUS_CODE
|
A tag de cache Por exemplo, é possível invalidar todas as respostas HTTP 404 armazenadas em cache especificando |
content-type=MIME_TYPE
|
A tag de cache Por exemplo, o tipo MIME de uma playlist HLS é
Isso permite invalidar tipos específicos de conteúdo. |
origin=ORIGIN_NAME
|
A tag de cache O valor |
Limitações da tag de cache
As tags de cache têm as seguintes restrições:
- Não pode exceder 120 bytes por tag
- Não pode exceder 1 KiB (1.024 bytes) do total de nomes de tag por objeto em cache
- Não pode exceder 10 tags por objeto, sem incluir as tags padrão adicionadas pelo Media CDN
- Precisa ser um nome de token HTTP válido, conforme definido na Seção 3.2.6 do HTTP RFC 7230
- Não pode incluir os prefixos
status=
,origin=
oucontent-type=
integrados (que são ignorados).
As tags que não estiverem dentro desses limites ou atenderem a esses requisitos serão ignoradas. Em alguns casos, como quando os cabeçalhos de resposta são muito grandes, a resposta falha e não é armazenada em cache.
Permissões
A permissão
networkservices.EdgeCacheServices.invalidateCache
controla o acesso à API invalidateCache
.
Essa permissão está incluída nos papéis networkservices.edgeCacheAdmin
e
networkservices.edgeCacheUser
do Identity and Access Management.
Examples
Os exemplos a seguir mostram como invalidar respostas armazenadas em cache para um serviço do Media CDN.
É possível combinar os campos host
, path
e tags
em uma única solicitação de invalidação para invalidar um conjunto específico de conteúdo.
Invalidar pelo host
Console
- Acesse a página do Media CDN no console do Google Cloud.
Acessar o Media CDN - Clique na guia Services.
- Clique no seu serviço.
- Clique na guia Invalidação de cache.
- Para o padrão de caminho invalidar, insira um nome do host seguido por um caminho.
Por exemplo:
media.example.com/cats
oumedia.example.com/cat*
. O nome do host não pode incluir*
.
gcloud
gcloud edge-cache services invalidate-cache SERVICE_NAME \ --host=HOST
Substitua:
SERVICE_NAME
pelo nome do serviço do armazenamento em cache de borda.HOST
pelo nome do host completo da entrada de cache a ser invalidada.
Exemplo:
gcloud edge-cache services invalidate-cache SERVICE_NAME \ --host="media.example.com"
Invalidar por caminho
Console
- Acesse a página do Media CDN no console do Google Cloud.
Acessar o Media CDN - Clique na guia Services.
- Clique no seu serviço.
- Clique na guia Invalidação de cache.
- Para o padrão de caminho ser invalidado, insira um caminho.
Por exemplo:
/videos/funny.mp4
ou/segments/e94a6b1f731/*
.
gcloud
gcloud edge-cache services invalidate-cache SERVICE_NAME \ --path=PREFIX
Substitua:
SERVICE_NAME
pelo nome do serviço do armazenamento em cache de borda.HOST
pelo nome do host das entradas de cache a serem invalidadas. Para corresponder a qualquer nome de host, omita a sinalização de host.PREFIX
com um prefixo de caminho terminado em "*" que corresponde às entradas de cache a serem invalidadas.
Exemplo:
gcloud edge-cache services invalidate-cache SERVICE_NAME \ --path="/segments/e94a6b1f731/*"
Também é possível invalidar um caminho exato omitindo o caractere *
à direita. Transmitir --path="/videos/funny.mp4"
invalida a
resposta armazenada em cache (se houver) que corresponde a esse caminho.
Invalidar pela tag de cache
Console
O console do Google Cloud não oferece suporte à invalidação por tags de cache.
gcloud
gcloud edge-cache services invalidate-cache SERVICE_NAME \ --tags=TAGS
Substitua:
SERVICE_NAME
pelo nome do serviço do armazenamento em cache de borda.TAGS
por uma lista de tags separada por vírgulas.
Exemplo:
gcloud edge-cache services invalidate-cache SERVICE_NAME \ --tags="status=404,content-type=text/plain"
Latência de invalidação
A invalidação de cache nos milhares de locais do Media CDN geralmente é concluída em até um minuto no mundo todo.
Em alguns casos, a invalidação pode levar mais tempo, dependendo da carga do sistema, da conectividade e do volume de conteúdo que está sendo invalidado.
Geração de registros
Se os registros de auditoria estiverem ativados, as chamadas de invalidação serão registradas no Cloud Logging.
Limitações
As invalidações são limitadas por taxa. Se você exceder o limite de taxa de invalidações,
vai receber uma mensagem de erro HTTP 429
com o status RESOURCE_EXHAUSTED
.
Uma invalidação pode ser de qualquer tamanho. Por exemplo, invalidar
/images/my-image.png
conta como uma invalidação. Invalidar /images/*
também conta como uma invalidação.
Esse comportamento é diferente do comportamento no Cloud CDN. O Cloud CDN aceita uma invalidação por minuto.