A invalidação de cache, às vezes chamada de purga de cache, é o processo de declarar o conteúdo armazenado em cache como inválido. Isso faz com que a entrada seja removida do cache e reabastecida do servidor de origem na próxima vez que o conteúdo for solicitado.
O Media CDN oferece suporte a várias maneiras de selecionar conteúdo para ser invalidado, conforme descrito abaixo:
- Host e caminho 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 segmentar respostas específicas em cache e minimizar a carga de origem no preenchimento de cache subsequente.
Sintaxe de invalidação aceita
A sintaxe de invalidação compatível é a seguinte:
Tipo | Sintaxe | Exemplo |
---|---|---|
Invalidação do host | Invalidar as respostas armazenadas em cache para o host especificado. |
gcloud edge-cache services invalidate-cache
SERVICE_NAME \
|
Invalidação de caminho | Invalida 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 da tag de cache no código de status HTTP, nome da origem ou tipo MIME |
Inválidar respostas armazenadas em cache com uma tag correspondente. Várias tags são
tratadas como um OR booleano.
|
gcloud edge-cache services invalidate-cache
SERVICE_NAME \
gcloud edge-cache services invalidate-cache
SERVICE_NAME \
|
Observações:
- É possível especificar até 10 tags de cache 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 umAND
booleano. - Quando várias tags de cache são especificadas, elas são tratadas como um
OR
booleano. Por exemplo, se você especificar--tags="status=404,origin=staging-origin"
, todas as respostas com uma tag de cache destatus=404
serão invalidadas, assim como todas as respostas com uma tag de cache deorigin=staging-origin
.
Tags de cache
As tags de cache (ou chaves substitutas) permitem invalidar o conteúdo com base em metadados arbitrários.
Essas tags são definidas da seguinte maneira:
- Definir 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 de onde a resposta foi extraída.
Quando várias tags são especificadas em uma única solicitação de invalidação, elas são
tratadas como um OR
booleano.
Veja o exemplo a seguir.
Você tem os seguintes objetos armazenados em cache:
- Objeto 1 em cache com tags
status=200
econtent-type=video/mp4
- Objeto em cache 2 com tags
status=404
econtent-type=text/plain
- Objeto 3 em cache com as tags
status=200
econtent-type=application/x-mpegurl
- Objeto 1 em cache com 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 que você precise 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 cabeçalhos existentes (como a linha de status ou Content-Type) ou detalhes de configuração interna.
- As tags de cache enviadas pela origem no cabeçalho de resposta HTTP
Cache-Tag
são enviadas ao cliente. Se você quiser impedir que eles sejam enviados ao cliente, use o recursoresponseHeadersToRemove
em umrouteRule
para remover o cabeçalhoCache-Tag
. Para conferir exemplos, consulte a documentação de cabeçalhos personalizados.
Tags integradas
As respostas têm automaticamente as seguintes tags de cache aplicadas para oferecer suporte à invalidação de conteúdo com base no código de status, no tipo MIME ou na origem de onde o conteúdo foi buscado. Não é necessário 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 em cache especificando |
content-type=MIME_TYPE
|
A tag de cache Por exemplo, o tipo MIME de uma playlist HLS é
Isso permite que você invalide tipos específicos de conteúdo. |
origin=ORIGIN_NAME
|
A tag de cache O valor |
Limitações das tags de cache
As tags de cache têm as seguintes restrições:
- Não pode exceder 120 bytes por tag
- Não pode exceder 4 KiB (4096 bytes) de nomes de tags no total por objeto armazenado em cache
- Não pode exceder 50 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 inclua os prefixos
status=
,origin=
oucontent-type=
integrados (que são ignorados).
As tags que não se enquadram nesses limites ou não atendem a esses requisitos sã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 do Identity and Access Management networkservices.edgeCacheAdmin
e
networkservices.edgeCacheUser
.
Exemplos
Os exemplos a seguir mostram como invalidar respostas em cache para um serviço de CDN de mídia.
É 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 por host
Console
- No Google Cloud console, acesse a página CDN de mídia.
- Clique na guia Serviços.
- Clique em um serviço.
- Clique na guia Invalidação de cache.
- Para invalidar o cache por host, em Host, especifique um nome de host, a menos que
você queira invalidar o caminho para todos os nomes de host.
O nome do host não pode incluir
*
. - Clique em Invalidar e em Confirmar para indicar que você quer que o Media CDN invalide o conteúdo correspondente ao host.
gcloud
gcloud edge-cache services invalidate-cache SERVICE_NAME \ --host=HOST
Substitua:
SERVICE_NAME
com o nome do serviço de cache do Edge.HOST
com o nome de host completo da entrada de cache a ser invalidada.
Exemplo:
gcloud edge-cache services invalidate-cache SERVICE_NAME \ --host="media.example.com"
Invalidar todo o conteúdo associado a um host pode ser arriscado e afetar o desempenho. Considere reduzir o escopo de invalidação fornecendo um caminho específico ou tags de cache relevantes.
Invalidar por caminho
Console
- No Google Cloud console, acesse a página CDN de mídia.
- Clique na guia Serviços.
- Clique em um serviço.
- Clique na guia Invalidação de cache.
- Para invalidar o cache por caminho, em Path, especifique o caminho e o
nome do arquivo. Por exemplo,
/videos/funny.mp4
ou/segments/e94a6b1f731/*
. - Clique em Invalidar.
gcloud
gcloud edge-cache services invalidate-cache SERVICE_NAME \ --path=PREFIX
Substitua:
SERVICE_NAME
pelo nome do serviço de cache do Edge.HOST
com o nome do host das entradas de cache a serem invalidadas. Para fazer correspondência com qualquer nome de host, omita a flag de host.PREFIX
com um prefixo de caminho que termina em "*" e 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 *
final. A transmissão de --path="/videos/funny.mp4"
invalida a
resposta armazenada em cache (se houver) correspondente a esse caminho.
Invalidar por tag de cache
Console
- No Google Cloud console, acesse a página CDN de mídia.
- Clique na guia Serviços.
- Clique em um serviço.
- Clique na guia Invalidação de cache.
- Para validar o cache por tags, em Tags de cache, especifique uma ou mais tags para invalidar o cache. Use espaços ou vírgulas para separar as tags. É possível adicionar no máximo 10 tags de cache para invalidação.
- Clique em Invalidar.
gcloud
gcloud edge-cache services invalidate-cache SERVICE_NAME \ --tags=TAGS
Substitua:
SERVICE_NAME
com o nome do serviço de cache do Edge.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 em milhares de locais da Media CDN geralmente é concluída em um minuto em todo o mundo.
Em alguns casos, a invalidação pode levar mais tempo, dependendo da carga do sistema, da conectividade e do volume de conteúdo invalidado.
Logging
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,
uma mensagem de erro HTTP 429
com o status RESOURCE_EXHAUSTED
será exibida.
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.