Real-Time Purge
Consulte cada tipo de purge do Real-Time Purge: argumentos de URL, cache key e wildcard, as duas camadas, o corpo da API, os erros e os limites.
O Real-Time Purge remove um objeto em cache do Cache, ou do Tiered Cache, antes do fim do seu TTL, de modo que a requisição seguinte busca a versão atual na origem. Um purge recebe um de três argumentos: uma lista de URLs, uma lista de cache keys ou uma expressão com wildcard. A Azion coloca o purge em fila depois da confirmação e o lista no histórico de purges quando ele termina. Use um purge para entregar uma atualização que a origem já tem, para remover um objeto obsoleto, ou para manter o controle do que a Azion entrega em conteúdo dinâmico. Para os passos, consulte Purgue conteúdo em cache. Para o formato de uma key, consulte Cache keys.
Interfaces
Cinco interfaces enviam o mesmo purge. Cada uma nomeia o tipo de purge, carrega a lista de argumentos e nomeia a camada.
| Interface | Purge |
|---|---|
| Azion Console | Real-Time Purge, onde você escolhe o tipo de purge e a camada e insere a lista de argumentos. Para os passos, consulte Purgue conteúdo em cache |
| Azion API v4 | POST /v4/workspace/purge/{purge_type}, com purge_type igual a url, cachekey ou wildcard, e um corpo com items e layer |
| Azion CLI | azion purge com --urls, --cachekey ou --wildcard, e --layer |
azion.config.js | Uma entrada do array purge, do tipo AzionPurge, com type, items e layer |
| Azion Lib | purgeURL, purgeCacheKey e purgeWildCard, de azion/purge |
A API autentica com um personal token no header Authorization: Token <token>. Para mais informações, consulte Personal tokens.
Camadas
Um purge nomeia a camada que ele limpa. O campo layer do corpo da API e a flag --layer da CLI são opcionais, e os dois têm cache como padrão.
| Camada | Valor na API | O que ela purga |
|---|---|---|
| Cache | cache, o padrão | Os objetos em cache na infraestrutura distribuída da Azion |
| Tiered Cache | tiered_cache | Os objetos da segunda camada de cache, em aplicações cujo cache setting tem o módulo ativo; apenas por cache key. Um purge por URL ou por wildcard com essa camada retorna o erro 30001 |
Para purgar um objeto das duas camadas, purgue primeiro o Tiered Cache e depois o Cache, para que o cache não seja reabastecido por uma cópia desatualizada do Tiered Cache.
Tipos de purge
O segmento purge_type do path da API, a flag da CLI e o tipo de purge do Console nomeiam os mesmos três tipos.
| Tipo | purge_type | Argumento | Por requisição | Camadas |
|---|---|---|---|---|
| URL | url | Uma lista de URLs | Até 50 | cache |
| Cache key | cachekey | Uma lista de cache keys | Até 50 | cache, tiered_cache |
| Wildcard | wildcard | Uma expressão com wildcard | 1 | cache |
Purge por URL
Um purge por URL recebe uma lista de URLs e não é recursivo: apenas as URLs da lista saem do cache. A Azion converte cada URL na sua cache key sem variação de conteúdo, então uma variação por cookie, device group ou formato de imagem não expira com ele. Purgue essas variações com um purge por cache key ou por wildcard. Uma variação por query string faz parte da URL, então ela expira quando os argumentos estão na mesma ordem da cache key. Com o Sort ativo no cache setting, envie os argumentos em ordem alfabética, ou use um purge por cache key ou por wildcard. Para o controle Sort, consulte Cache settings.
Uma URL é scheme://host ou host, com um /path e uma ?query-string opcionais. Sem scheme, a Azion purga as cópias em HTTP e em HTTPS. Um asterisco (*) em um purge por URL é um caractere literal, e não um wildcard. A lista abaixo carrega quatro argumentos válidos de URL:
http://www.example.comhttp://static.example.com/include/site.csshttps://static.example.com/include/site.jsdynamic.example.com/app.py?argument
Purge por cache key
Um purge por cache key recebe uma lista de cache keys. Uma key nomeia uma variação de um objeto. Ela pode variar por query string, com ou sem Sort, por cookie, por device group ou por método da requisição pela Advanced Cache Key do Application Accelerator, ou por formato de imagem pelo Image Processor. Para purgar todas as variações de um objeto, liste cada key. Um purge por cache key é o único tipo que alcança a camada do Tiered Cache.
Purge por wildcard
Um purge por wildcard recebe uma expressão: scheme://host ou host, com um /path e uma ?query-string opcionais, e um asterisco (*) no path ou na query string. Vários asteriscos casam um path mais complexo. Cada requisição carrega uma expressão, e um purge por wildcard alcança apenas a camada do Cache, e não o Tiered Cache. A lista abaixo carrega dez expressões válidas:
www.example.com/*static.example.com/include/*.cssstatic.example.com/*/site.jsstatic.example.com/static/images/image_1.jpg?ims=*www.example.com/alpha*www.example.com/*beta*www.example.com/*a*/charliewww.example.com/*a*/*a*www.example.com/*?b*www.example.com/*?*2*c=*
Purgue conteúdo que varia
Quando um cache setting varia a cache key, um objeto tem uma key por variação. A tabela nomeia o purge que alcança cada tipo de variação.
| Variação | Como purgar |
|---|---|
| Cookies | Um purge por cache key que lista cada variação, ou um purge por wildcard com @@* no fim |
| Query string | Um purge por cache key que lista cada variação, um purge por wildcard com ?* no fim, ou um purge por URL que nomeia apenas os argumentos da key, em ordem alfabética quando o Sort está ativo |
| Device group | Um purge por cache key que lista cada variação, ou um purge por wildcard |
| Image Processor | Um purge por cache key que lista cada variação, ou um purge por wildcard com * no fim |
| Large File Optimization | Um purge por cache key que lista a key de cada fragmento, ou um purge por wildcard como static.example.com/media/file.mp4* |
POST e OPTIONS em cache | Um purge por cache key que lista cada variação, ou um purge por wildcard com @@* no fim |
As variações por query string, por cookie, por device group e por método da requisição vêm da Advanced Cache Key, um recurso do Application Accelerator. O mesmo módulo coloca em cache respostas POST e OPTIONS; sem ele, a Azion coloca em cache apenas GET e HEAD. Para os behaviors, consulte Configurações do Application Accelerator.
Uma imagem que o Image Processor entrega tem uma key por processamento e por formato. A key carrega o host e o path, os argumentos de processamento depois do separador ?, e o formato depois de @@. As quatro keys abaixo pertencem a uma imagem:
httpstatic.example.com/static/images/image.jpg@@httpstatic.example.com/static/images/image.jpg@@webphttpstatic.example.com/static/images/image.jpg?ims=88x@@httpstatic.example.com/static/images/image.jpg?ims=88x@@webp
Com o Large file optimization ativo, a Azion coloca um objeto grande em cache em fragmentos, cada um com a sua própria key. O arquivo pode permanecer em cache depois de um purge da sua URL. Para purgá-lo, liste a key de cada fragmento, ou use o wildcard static.example.com/media/file.mp4*, que limpa cada fragmento de um arquivo.
Corpo da requisição
A API lê o tipo de purge no path e os argumentos em items. O corpo abaixo envia um purge por URL pelo POST /v4/workspace/purge/url:
Um purge por wildcard vai pelo POST /v4/workspace/purge/wildcard; sem layer, a API purga o cache:
Um purge por cache key vai pelo POST /v4/workspace/purge/cachekey:
Cada requisição responde com HTTP 201, state igual a executed e os itens e a camada em data:
A CLI envia os mesmos três purges pela linha de comando, o último para a camada do Tiered Cache:
Cada comando imprime uma linha:
Depois do purge, a requisição seguinte pelo objeto retorna x-cache: MISS, porque a Azion o busca na origem novamente.
Confirmação
Depois que você cria um purge, uma mensagem confirma a criação. A Azion então coloca o purge em fila, e ele aparece no histórico de purges quando termina, porque o resultado leva tempo para propagar pela infraestrutura distribuída da Azion. O histórico pode ser filtrado pelo usuário que fez o purge, pelo horário, pela lista de argumentos, pelo tipo de purge e pelo método.
Erros
A API responde cada requisição abaixo com HTTP 400. O corpo carrega o código, o título e um detalhe.
| Código | Título | Causa | O que fazer |
|---|---|---|---|
30001 | Invalid Purge Layer For Purge Type | layer é tiered_cache em um purge url ou wildcard; o detalhe diz Invalid purge layer for purge type "url". | Purgue o Tiered Cache por cache key, ou defina layer como cache. |
30003 | Unauthorized Domain | Um item nomeia um domínio que a conta não possui; o detalhe diz The domain is not authorized for your account. | Corrija o domínio no item. Um purge alcança apenas os domínios da conta. |
30005 | Invalid Purge Cachekey | Um item de um purge cachekey não é uma cache key válida; o detalhe diz The Content must be a valid cachekey. | Envie a key como o header x-cache-key a mostra; o formato está em Cache keys. |
10065 | List Field Max Length | items tem mais de 50 elementos em um purge url ou cachekey, com o detalhe Ensure this field has no more than 50 elements.; ou mais de 1 elemento em um purge wildcard, com o detalhe Ensure this field has no more than 1 elements. e meta.max_length igual a 1. | Divida a lista em requisições de 50 itens ou menos, e envie uma expressão com wildcard por requisição. |
Limites
Os limites abaixo se aplicam a requisições de purge. Cada linha nomeia a resposta da API além do valor, onde uma fonte a informa.
| Valor | Limite | Além do limite |
|---|---|---|
| Tamanho de uma URL ou cache key | 4.096 caracteres | Nenhum erro é documentado |
| Requisições por URL e cache key por cliente | 200 requisições, 50 objetos por requisição | HTTP 400, erro 10065 acima de 50 objetos em uma requisição |
| Objetos por minuto em purges por URL e cache key | 10.000 objetos a cada 60 segundos | Nenhum erro é documentado |
| Requisições de purge por wildcard por dia | 2.000 requisições em um intervalo de 24 horas | Nenhum erro é documentado |
| Tamanho de uma expressão com wildcard | 256 caracteres | Nenhum erro é documentado |
| Expressões com wildcard por requisição | 1 | HTTP 400, erro 10065 |
| Histórico de purges | 1.000.000 de requisições | Nenhum erro é documentado |
| Retenção do histórico de purges | 6 meses | Nenhum erro é documentado |
Para os purges que cada plano inclui, consulte Limites de Applications.