Real-Time Purge
Por meio do Real-Time Purge você pode deletar instantaneamente o cache de seu conteúdo na Azion, usando uma Cache Key List, uma URL List ou uma expressão Wildcard que represente os objetos que você deseja remover.
1. Estratégias de atualização de conteúdo
Quando você atualiza um conteúdo em sua origem, você deve escolher a melhor estratégia para atualização do mesmo no cache da Azion. Veja a seguir as opções disponíveis: tempo de expiração, nomes de objetos com versão e Real-Time Purge.
Tempo de expiração
Ao configurar sua política 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 poderá continuar entregando uma cópia em cache do mesmo, pelo tempo que você tiver definido.
Nomes de objetos com versão
Recomendamos que você utilize alguma marcação de versionamento no nome de seus objetos sempre que possível. Ao atualizar o mesmo na origem, você incrementa a versão no nome do objeto, forçando com que cada modificação de seu conteúdo seja tratada como um novo objeto pela Azion.
Real-Time Purge
Você pode deletar instantaneamente o cache de seu conteúdo na Azion, tanto em Edge Caching quanto em L2 Caching. Dessa forma, o sistema da Azion busca a versão mais recente de seu conteúdo na origem.
Sempre que possível, utilize políticas de cache com tempos longos para expiração de seu conteúdo, como por exemplo, 1 ano – definindo o campo Maximum TTL com o valor de 31.536.000 segundos. Dessa forma, você estará otimizando a performance de seu conteúdo ou aplicação, melhorando a experiência para seus usuários, reduzindo seu tráfego com a Azion e reduzindo a carga em sua origem.
Para versionar o nome de seus objetos, você pode utilizar como marcação de versão um número sequencial, um timestamp ou outro mecanismo que julgar mais apropriado. Por exemplo, ao invés de nomear uma imagem como image.jpg, você poderia chamá-la de image_1.jpg e, quando for necessário atualizá-la, incremente a versão para image_2.jpg.
Dessa forma, toda atualização de seu conteúdo será tratada como um novo objeto pela Azion, o que garante a você as seguintes vantagens:
- permite que você controle qual objeto uma requisição deve retornar, mesmo que o usuário possua a versão anterior localmente gravada no cache do navegador ou em algum cache intermediário. Mesmo removendo o cache da Azion, o usuário pode continuar acessando a versão antiga de seus caches locais, até que transcorra o tempo de expiração;
- versionamento viabiliza que você proporcione versões diferentes de seus objetos para usuários distintos;
- simplica também o processo de rollback em caso de problemas com sua atualização.
2. Real-Time Purge
Ao disponibilizar uma operação de purge rápida e previsível, a Azion possibilita que você aumente o tempo de expiração (TTL) de seus objetos em cache, ou armazene em cache objetos direcionados a eventos, melhorando offload e performance de seu conteúdo ou aplicação, além de reduzir seu tráfego com a Azion.
Ao utilizar o Real-Time Purge para gerenciar a expiração do cache de seu conteúdo, você também poderá realizar:
- cache de conteúdos dinâmicos e respostas de API, sem sacrificar a experiência de usuário, pois os produtos Edge Caching e L2 Caching serão atualizados com seu conteúdo mais recente;
- melhor eficiência do cache, garantindo maior controle de como seus objetos são entregues pela Azion;
- gestão de objetos obsoletos ou desatualizados melhor e mais previsível, auxiliando seus desenvolvedores na construção de soluções confiáveis, resilientes e com melhor performance.
Além disso, disponibilizamos duas opções de interface para execução de purge de objetos no Edge Caching e L2 Caching em cache: via Real-Time Manager ou via Azion API.
Para acessar o Real-Time Purge via web, prossiga conforme os passos a seguir:
-
Acesse o Real-Time Manager;
-
No menu Products no canto superior esquerdo, acesse Real-Time Purge na seção Tools;
-
Clique no botão New Purge, preencha os campos solicitados;
Campo Opções Layer Edge Caching: Purge do conteúdo da web entregue no edge.
L2 Caching: Purge do conteúdo da web localizado na camada mais próxima à sua origem.Purge type Cache Key
URL
WildcardArguments www.example.com.br/index.html
Dica: sepere os argumentos usando uma nova linha. -
Clique no botão Purge para realizar o purge relacionado às opções escolhidas.
Você pode remover o conteúdo tanto na camada de Edge Caching – para limpar o conteúdo da web que é entregue no edge – quanto na L2 Caching – para limpar o conteúdo da web na camada mais próxima à sua origem.
Observação: Todas as três opções de purge estão disponíveis para a camada Edge Caching. Já para a camada L2 Caching, a opção de purge Wildcard ainda não está disponível, ou seja, está disponível o purge de L2 Caching apenas por URL e Cache Key.
3. Tipos de Purge
Você pode executar o purge tanto no produto de Edge Caching quanto no L2 Caching passando como parâmetro a lista de URLs, uma expressão Wildcard ou a lista de Cache Keys.
URL Purge | Cache Key Purge | Wildcard Purge |
---|---|---|
É a maneira mais simples de purge seu cache de conteúdo, passando uma lista de até 50 objetos por pedido. Você não pode remover as variações do cache de conteúdo com esse método. | É a maneira mais precisa de purge seu cache de conteúdo passando uma lista de chaves de cache de até 50 objetos por pedido. | É uma maneira poderosa de purge uma lista de objetos passando uma expressão Wildcard. Você pode usar o caractere curinga (*) em argumentos de caminho ou query string. |
Veja os detalhes de cada tipo de purge:
URL Purge
Permite o purge dos objetos em cache, passando-se como argumento uma listagem de URLs. O formato da URL deve respeitar o padrão scheme://host
ou apenas host
, seguido ou não de um /path
e da ?query-string
. Ao ocultar o scheme, será realizada a expiração dos conteúdos tanto de “http” quanto de “https”.
URL Purge não é recursivo, o que significa que somente as URLs informadas serão expiradas do cache. As URLs são convertidas automaticamente para suas respectivas Cache Keys, sem considerar eventuais variações de conteúdo na mesma URL.
Variações de conteúdo baseadas em cookies, device groups, formato de imagem ou outras não expiram com essa operação. Considere utilizar Cache Key Purge ou Wildcard Purge para essas situações.
A expiração de variações do conteúdo baseadas em Query String pode ser realizada usando URL Purge, uma vez que a Query String é uma componente da URL, desde que os argumentos utilizados para variação do conteúdo sejam enviados na ordem correta em que forem apresentados. Se você utiliza a funcionalidade de Query String Sort, ordene os argumentos na requisição ou considere utilizar Cache Key Purge ou Wildcard Purge como alternativa.
Se você utilizar o caracter asterisco (*) em uma requisição de URL Purge, ele será tratado como um caracter na URL e não como Wildcard.
Exemplos de URL Purge:
www.yourdomain.com
static.yourdomain.com/include/site.css
static.yourdomain.com/include/site.js
dynamic.yourdomain.com/app.py?argument
Cache Key Purge
Permite o purge dos objetos em cache, passando-se como argumento uma listagem de Cache Keys.
A Cache Key é uma entrada de índice para um objeto no cache da Azion. O formato padrão de cache key adotado pela Azion utiliza host e path da URL para identificar objetos. Você pode especificar uma chave de cache avançada para identificar diferentes variações de um objeto, com base em:
- argumentos de Query String ou Query String Sort;
- cookies – ao utilizar o Azion Application Acceleration;
- formato de imagens de acordo com o suporte do navegador – ao utilizar o Azion Image Processor.
Para obter a Cache Key, deve-se requisitar o conteúdo utilizando o Azion Debug Header (Pragma: azion-debug-cache), por exemplo:
HEAD /path HTTP/1.1 Host: yourdomain.com Pragma: azion-debug-cache
A resposta retornará um cabeçalho com a cache key (X-Cache-Key), por exemplo:
X-Cache-Key: yourdomain.com/path@@
Cada variação do objeto é representada por uma cache key distinta e é expirada individualmente. Por exemplo, se houver uma variação de objeto por device group, cada URL de cada grupo terá uma Cache Key distinta com o separador “@@
” e o nome do device group. Para realizar o purge de todas as variações, deve-se buscar a cache key individualmente de cada grupo.
Exemplos de Cache Key Purge:
www.yourdomain.com/@@
www.yourdomain.com/@@Mobile
static.yourdomain.com/include/site.css
static.yourdomain.com/include/site.js
static.yourdomain.com/static/images/image_1.jpg?ims=880x@@
static.yourdomain.com/static/images/image_1.jpg?ims=880x@@webp
Wildcard Purge
Permite o purge dos objetos em cache, passando-se como argumento uma expressão Wildcard. O formato da expressão Wildcard deve respeitar o padrão scheme://host
ou apenas host
, seguido ou não de um /path
e da ?query-string
, com caracter asterisco (*) no path ou na query string.
A expressão Wildcard é convertida automaticamente em múltiplos objetos em um mesmo domínio. Para expirar as variações de conteúdo baseadas em cookies, device groups ou formato de imagem, para a mesma URL, utilize a URL com a expressão “@@*
” no final.
www.yourdomain.com/*
static.yourdomain.com/include/*.css
static.yourdomain.com/*/site.js
static.yourdomain.com/static/images/image_1.jpg?ims=*
dynamic.yourdomain.com/app.py@@*
Você pode usar vários wildcards para selecionar um padrão complexo.
www.yourdomain.com/alpha*
www.yourdomain.com/*beta*
www.yourdomain.com/*a*/charlie
www.yourdomain.com/*a*/*a*
www.yourdomain.com/*?b*
www.yourdomain.com/*?*2*c=*
4. Métodos de Purge
Delete
O método Delete remove o objeto do cache. Na próxima requisição do usuário ao conteúdo, será realizada uma requisição GET incondicional para a origem.
Este método de purge impede que a Azion entregue um objeto desatualizado (stale), caso a origem esteja inacessível. Ao invés disso, se a origem estiver inacessível, será entregue uma página de erro.
O uso do método Delete é indicado para:
- remover um conteúdo do cache da Azion, após a remoção do mesmo na origem;
- forçar a remoção e posterior atualização de conteúdos para os quais o timestamp não é confiável;
- forçar a entrega de uma página de erro no lugar de um objeto desatualizado (stale), caso sua origem esteja inacessível e a Azion não consiga obter a versão mais recente de seu conteúdo.
5. Purge de objetos com variação de conteúdo
Application Acceleration
Ao utilizar variação de conteúdo baseada em Cookies, além do host e path, a chave de cache incluirá o separador @@
seguido do nome dos cookies utilizados e valores.
Por exemplo, para uma mesma URL http://www.yourdomain.com/, utilizando variação de conteúdo baseada no cookie “user”, as chaves de cache poderiam ser:
www.yourdomain.com/@@
www.yourdomain.com/@@user=user1
www.yourdomain.com/@@user=user2
Para executar o purge de objetos com variação baseada em cookies, você pode utilizar Cache Key Purge, informando todas as variações individualmente, ou Wildcard Purge, utilizando @@*
no final.
Ao utilizar variação de conteúdo baseada em Query String, além do host e path, a chave de cache incluirá o separador ?
e os argumentos de query string utilizados. Por exemplo:
dynamic.yourdomain.com/product.py?id=1000
dynamic.yourdomain.com/product.py?id=1001
Para executar o purge de objetos com variação baseada em query string, você pode utilizar Cache Key Purge, informando todas as variações individualmente, ou Wildcard Purge, utilizando ?*
no final, ou ainda URL Purge, informando na URL apenas os argumentos utilizados na cache key. Caso você utilize Query String Sort, os argumentos terão que ser enviados na ordem correta.
Image Processor
Ao utilizar o Image Processor, você estará utilizando uma chave de cache avançada. Além de host e path, a chave de cache incluirá o separador ?
e os argumentos do produto, além do separador @@
para identificação de variação por formato de imagem suportada pelo navegador.
São exemplos de chaves de cache utilizando o Image Processor:
static.yourdomain.com/static/images/image.jpg@@
static.yourdomain.com/static/images/image.jpg@@webp
static.yourdomain.com/static/images/image.jpg?ims=88x@@
static.yourdomain.com/static/images/image.jpg?ims=88x@@webp
Para executar o purge de imagens processadas pelo Image Processor, você pode utilizar Cache Key Purge, informando todas as variações individualmente, ou Wildcard Purge, utilizando *
no final.
Slice Configurations
Se você utiliza a otimização de cache para entrega de arquivos grandes – sliced files – como em mídias para Progressive Download, você estará utilizando uma chave de cache avançada. Além de host e path, a chave de cache incluirá o separador @@bytes=
, para cada slice do conteúdo.
São exemplos de chave de cache utilizando otimização para entrega de arquivos grandes:
static.yourdomain.com/midias/file.mp4@@bytes=0-1048575
static.yourdomain.com/midias/file.mp4@@bytes=1048576-2097151
Para executar o purge de objetos utilizando essa otimização, você deve utilizar Wildcard Purge, colocando @@*
no final. Você também pode utilizar o Cache Key Purge, desde que informe a cache key de todos os slices corretamente.
Tome cuidado ao executar o purge para um slice individualmente, pois em caso de alteração do conteúdo na origem, o mesmo poderá ficar inconsistente no cache.
Método POST e HTTP
Por padrão, a Azion permite o cache apenas dos métodos GET
e HEAD
. Você pode habilitar o cache POST
ou OPTIONS
na aba Cache Settigs, dentro das configurações de sua Edge Application, onde você usará uma advanced cache key. Além do host e do path, a cache key incluirá o separador @@ seguido pelo hash MD5 do corpo da request (POST arguments).
Sintaxe
Exemplo método POSTdynamic.yourdomain.com/path@@md5_of_post_arguments
Exemplo método OPTIONSdynamic.yourdomain.com/path@@md5_of_options_arguments
Para limpar esses objetos, você pode usar um Cache Key Purge, inserindo todas as variações individualmente ou um Wildcard Purge, usando @@* no final.
Leia mais: API - Real-Time Purge
Custom Configurations
Se você possui uma Custom Configuration com uma chave de cache customizada, você deve utilizar o Cache Key Purge para deletar o cache de seus objetos. Além de host e path, a chave de cache poderá incluir o separador @@
seguido de seus argumentos customizados.
dynamic.yourdomain.com/path@@custom_arguments
É necessário que você consulte o formato customizado de sua chave de cache para executar o Cache Key Purge.
6. Confirmação do Purge
O purge é uma operação que não requer confirmação. Uma vez que o Real-Time Purge é concluído quase que instantaneamente, nenhuma confirmação da operação é necessária e você pode considerar que seus purges serão concluídos em menos de 3 segundos, exceto no caso de uso consistente dos Rate Limits.
Quando necessário, você poderá consultar o histórico de purges para saber o usuário que realizou a requisição, horário, lista de argumentos, tipo e método de purge.
7. Limites
A operação de purge é executada conforme os seguintes limites de uso, baseados no tipo e no número de objetos que estão sendo expirados:
- URL e Cache Key Purges: até 10 mil objetos a cada 60 segundos, sendo até 200 requisições com 50 objetos por requisição, por cliente. A URL e a Cache Key são limitadas em 4.096 caracteres;
- Wildcard Purges: até 2 mil requests por dia (por intervalo de 24h), sendo uma Wildcard URL por requisição. A Wildcard URL é limitada em 256 caracteres;
- O histórico de purges é limitado a 6 meses e até 1 milhão de requisições.
Não encontrou o que procurava? Abra um ticket.