Real-Time Purge
O Real-Time Purge permite que você exclua instantaneamente o cache de seu conteúdo na Azion. Ao atualizar o conteúdo em sua origem, você deve escolher a melhor estratégia para atualizá-lo no cache da Azion.
Ao configurar suas políticas de cache, você determina o tempo que deseja que seus objetos fiquem em cache na Azion. Quando você atualiza seu conteúdo na origem, a Azion pode continuar fornecendo uma cópia em cache pelo tempo que você definiu para ser armazenado em cache. Com o Real-Time Purge, você pode excluir instantaneamente o cache de seu conteúdo na Azion, tanto do Edge Caching quanto do L2 Caching. Dessa forma, a Azion buscará a última versão de seu conteúdo direto na origem.
Porém, se objetos específicos armazenados em cache precisarem ser removidos do edge antes de expirarem, você tem a opção de limpar o cache com o Real-Time Purge. A limpeza regular do cache ajuda você a:
- Garantir que os usuários recebam o conteúdo mais atualizado e experimentem as alterações mais recentes na sua aplicação.
- Evitar que os usuários visualizem conteúdo obsoleto.
- Fornecer conteúdo compatível com navegadores e dispositivos modernos.
- Fornecer respostas de API e cache de conteúdo dinâmico sem sacrificar a experiência do usuário.
- Controlar como seus objetos são servidos pela Azion.
- Gerenciar objetos obsoletos ou desatualizados, ajudando seus desenvolvedores a criar soluções confiáveis, resilientes e de melhor desempenho.
Boas práticas
Seção intitulada Boas práticasPara garantir que os purges de cache sejam seguros e controlados, você deve manter o versionamento nos nomes de objetos. Ao atualizar o objeto em sua origem, você pode adicionar a versão no nome do objeto, forçando cada modificação de seu conteúdo a ser tratada como um novo objeto pela Azion.
Para versionar seus objetos, você pode usar um número sequencial, um timestamp ou qualquer mecanismo que considere apropriado como marcação de versionamento. Por exemplo, em vez de nomear uma imagem como image.jpg
, você pode nomeá-la image_1.jpg
e, quando precisar atualizá-la, alterar a versão para image_2.jpg
.
Dessa forma, cada atualização de conteúdo será tratada como um novo objeto pela Azion. Isto lhe permite controlar qual objeto uma requisição deve retornar, mesmo que o usuário tenha a versão anterior salva localmente no cache do navegador ou em algum cache intermediário. Você também poderá fornecer diferentes versões de seus objetos para diferentes usuários e simplificar o processo de rollback em caso de problemas com sua atualização.
Método DEL
Seção intitulada Método DELSe você utilizar o método DEL
para remover o objeto do cache em vez de Real-Time Purge, a próxima requisição de conteúdo do usuário será um método GET
para a origem. No entanto, isso impede que a Azion entregue objetos stale se a origem estiver inacessível, entregando uma página de erro em seu lugar.
Você pode usar o DEL
se seu objetivo for:
- Remover o conteúdo do cache da Azion após ele ter sido removido da origem.
- Forçar a remoção e a atualização de conteúdos para os quais o timestamp não seja confiável.
- Forçar a entrega de uma página de erro em vez de um objeto obsoleto se sua origem estiver inacessível e a Azion não puder obter a versão mais recente de seu conteúdo.
O Real-Time Purge oferece duas opções de camadas para limpar seu cache:
- Edge Caching: limpa o cache que é mantido no edge.
- L2 Caching: limpa o cache da Layer 2 no edge. Requer que o módulo L2 Caching esteja ativo.
URL Purge
Seção intitulada URL PurgeLimpa objetos em cache através de uma lista de URLs como argumento.
A purge por URL é não recursiva, ou seja, somente URLs inseridas serão removidas do cache. As URLs são convertidas automaticamente em suas respectivas cache keys, sem considerar qualquer variação de conteúdo na URL.
A expiração das variações de conteúdo com base na query string pode ser executada usando a purge de URL, já que uma query string é um componente da URL, desde que os argumentos usados para a variação de conteúdo sejam enviados na ordem correta em que foram apresentados. Se você tiver ativado Query String Sort, classifique os argumentos na requisição ou considere o uso da cache key purge ou da wildcard purge como alternativa.
Argumentos de purge por URL
Seção intitulada Argumentos de purge por URLO formato da URL deve respeitar o padrão: scheme://host
ou apenas host
, seguido ou não de um /path
e da ?query-string
. Quando o scheme
não for informado, o conteúdo será eliminado tanto de HTTP quanto de HTTPS.
Por exemplo:
http://www.seudominio.com
http://static.seudominio.com/include/site.css
https://static.seudominio.com/include/site.js
dynamic.seudominio.com/app.py?argumento
Cache Key Purge
Seção intitulada Cache Key PurgeLimpa objetos em cache através de uma lista de cache keys como argumento.
Uma cache key é uma entrada de índice para um objeto no cache da Azion. O formato padrão de cache key adotado pela Azion para identificar objetos em cache concatena os seguintes elementos de sintaxe de uma URI: scheme
, host
e path
. Por exemplo, a URI https://static.yourdomain.com/include/site.js
irá gerar a cache key httpsstatic.yourdomain.com/include/site.js
.
Você pode especificar uma cache key para identificar diferentes variações de um objeto, com base em:
- Query string ou argumentos de classificação de query string.
- Cookies ao usar Advanced Cache Key.
- Formato de imagem de acordo com o suporte do navegador ao usar Image Processor.
Para obter a cache key de um recurso de uma aplicação, você deve fazer uma requisição HEAD
para o conteúdo e adicionar o cabeçalho de debug da Azion Pragma: azion-debug-cache
, por exemplo:
curl --location --head 'https://seudominio.com/path-do-recurso/imagem.jpeg' \--header 'Pragma: azion-debug-cache'
A resposta retornará um cabeçalho X-Cache-Key
com o valor da cache key, que baseado no exemplo acima, seria:
X-Cache-Key: httpsseudominio.com/path-do-recurso/imagem.jpeg@@
Cada variação de objeto é representada por uma cache key diferente e é removida individualmente.
Argumentos de purge por cache key
Seção intitulada Argumentos de purge por cache keyAlém de schema
, host
e path
, a cache key pode incluir o separador @@
. Por exemplo:
httpwww.seudominio.com/@@
httpwww.seudominio.com/@@Mobile
httpstatic.seudominio.com/include/site.css
httpsstatic.seudominio.com/include/site.js
httpsstatic.seudominio.com/static/images/image_1.jpg?ims=880x@@
httpsstatic.seudominio.com/static/images/image_1.jpg?ims=880x@@webp
Configurações de cache key personalizada
Seção intitulada Configurações de cache key personalizadaSe você tiver definido uma cache key personalizada sem usar Advanced Cache Key, deverá usar o purge da cache key para excluir o cache dos seus objetos. Além de schema
, host
e path
, a cache key pode incluir o separador @@
seguido de argumentos personalizados. Por exemplo:
httpsdynamic.seudominio.com/path@@custom_arguments
Você precisa fazer referência ao formato personalizado da sua cache key para executar a limpeza.
Wildcard Purge
Seção intitulada Wildcard PurgeLimpa o objeto em cache fornecendo uma expressão wildcard como argumento.
Argumentos de purge por wildcard
Seção intitulada Argumentos de purge por wildcardO formato da expressão wildcard deve estar de acordo com o padrão: scheme://host
ou apenas host
, seguido ou não de /path
e ?query-string
, com um caractere de asterisco (*
) no path
ou na query string. Você pode até usar vários wildcards para corresponder a um padrão complexo de um path
.
Por exemplo:
www.seudominio.com/*
static.seudominio.com/include/*.css
static.seudominio.com/*/site.js
static.seudominio.com/static/images/image_1.jpg?ims=*
www.seudominio.com/alpha*
www.seudominio.com/*beta*
www.seudominio.com/*a*/charlie
www.seudominio.com/*a*/*a*
www.seudominio.com/*?b*
www.seudominio.com/*?*2*c=*
Purge de Application Acceleration
Seção intitulada Purge de Application AccelerationVocê pode fazer o purge de objetos com variação de conteúdo baseada em cookies ou query strings usando a funcionalidade Advanced Cache Key do módulo Application Acceleration.
Além de host
e path
, a cache key deve incluir o separador @@
seguido do nome dos cookies usados e seus valores. Ela também termina em ;
.
Para remover objetos com variação baseada em cookies, você pode usar a purge por cache key, inserindo todas as variações individualmente, ou uma purge por wildcard, usando @@*
no final.
Por exemplo, para a mesma URL http://www.seudominio.com/
, usando a variação de conteúdo com base no cookie user
, as cache keys poderiam ser:
httpwww.seudominio.com/@@;
httpwww.seudominio.com/@@user=user1;
httpwww.seudominio.com/@@user=user2;
Ao usar a variação de conteúdo baseada em query strings, além de host
e path
, a cache key deve incluir o separador ?
e os argumentos da query string usados. Por exemplo:
httpsdynamic.seudominio.com/product.py?id=1000
httpsdynamic.seudominio.com/product.py?id=1001
Para limpar objetos com variação com base na query string, você pode usar:
- Purge por cache key, inserindo todas as variações individualmente.
- Purge por wildcard, usando
?*
no final. - Purge por URL, inserindo apenas os argumentos usados na cache key na URL.
Se você usar Query String Sort, os argumentos deverão ser enviados na ordem correta.
Purge do Image Processor
Seção intitulada Purge do Image ProcessorVocê pode remover imagens que são tratadas pelo Image Processor.
Além de host
e path
, a cache key deve incluir o separador ?
, key-value pairs relacionados ao tipo de processamento e o separador @@
para identificar a variação de formato de imagem compatível com o navegador. Por exemplo:
httpstatic.seudominio.com/static/images/image.jpg@@
httpstatic.seudominio.com/static/images/image.jpg@@webp
httpstatic.seudominio.com/static/images/image.jpg?ims=88x@@
httpstatic.seudominio.com/static/images/image.jpg?ims=88x@@webp
Você pode usar um purge por cache key, inserindo todas as variações individualmente, ou um purge por wildcard, usando *
no final.
Purge de sliced files
Seção intitulada Purge de sliced filesSe você usar o recurso Slice em sua aplicação, arquivos grandes ainda poderão permanecer no cache.
Para objetos fatiados, além de host
e path
, a cache key deve incluir o separador @@bytes=
para cada fatia de conteúdo. As chaves de cache que usam otimização para fornecer arquivos grandes têm o seguinte formato:
httpstatic.seudominio.com/midias/arquivo.mp4@@bytes=0-1048575
httpstatic.seudominio.com/midias/arquivo.mp4@@bytes=1048576-2097151
Para fazer o purge de todas as fatias de arquivos usando essa configuração, você pode fazer um purge por wildcard:
static.seudominio.com/midias/arquivo.mp4*
Purge de métodos HTTP
Seção intitulada Purge de métodos HTTPPor padrão, a Azion permite o cache apenas dos métodos GET
e HEAD
. Você pode ativar o cache de POST
ou OPTIONS
com o módulo Application Acceleration. Além de host
e path
, a cache key deve incluir o separador @@
seguido pelo hash MD5 do corpo da requisição (argumentos POST
). Por exemplo:
httpsdynamic.seudominio.com/path@@md5_of_post_arguments
httpsdynamic.seudominio.com/path@@md5_of_options_arguments
Para limpar esses objetos, você pode usar uma purge por cache key, inserindo todas as variações individualmente, ou uma purge por wildcard, usando @@*
no final.
Confirmação de purge
Seção intitulada Confirmação de purgeA purge é uma operação que é concluída quase instantaneamente e, por isso, nenhuma confirmação da operação é enviada. Você pode esperar que suas purges sejam concluídas em menos de 3 segundos, exceto no caso de uso consistente de rate limits.
Quando necessário, você pode consultar o histórico de purge para filtrar o usuário que fez o purge, a hora, a lista de argumentos, o tipo e o método de purge.
Limites
Seção intitulada LimitesA operação de purge é realizada de acordo com os seguintes limites de uso, com base no tipo e no número de objetos que estão sendo removidos:
- URL e cache key: até 10.000 objetos a cada 60 segundos, até 200 requisições com 50 objetos por requisição, por cliente. A URL e a cache key são limitadas a 4.096 caracteres.
- Wildcard purges: até 2.000 requisições por dia (por intervalo de 24 horas), um URL wildcard por requisição. A URL wildcard é limitada a 256 caracteres.
- O histórico de purge é limitado a 6 meses e a até 1 milhão de requisições.