Cache settings
Consulte todos os campos de um cache setting: TTLs de browser e de cache, stale cache, Tiered Cache, variação de cache, corpo da API, erros e limites.
Um cache setting é um conjunto de valores que dizem ao Cache como armazenar e entregar uma resposta. Ele pertence a uma Application, e os seus valores são o tempo de vida (TTL) de browser, o TTL e o comportamento de cache, o stale cache, a Large File Optimization, Tiered Cache e as variações de cache. Uma regra do Rules Engine com o behavior Set Cache Policy aplica o cache setting, e ele age apenas sobre as requisições às quais essa regra corresponde. Para criar um, consulte Crie um cache setting.
Interfaces
Seis interfaces criam e alteram o mesmo cache setting. As tabelas desta página nomeiam o controle do Console, o campo da API e a flag da CLI de cada campo.
| Interface | Criar | Ler, atualizar, excluir |
|---|---|---|
| Azion Console | A aba Cache Settings de uma Application em Applications e, em seguida, + Cache, que abre o drawer Create Cache Settings | A mesma aba lista cada setting com seu Name, Browser Cache e Cache |
| Azion API v4 | POST /v4/workspace/applications/{application_id}/cache_settings |
GET, PUT, PATCH e DELETE /v4/workspace/applications/{application_id}/cache_settings/{cache_setting_id}; GET /v4/workspace/applications/{application_id}/cache_settings lista todos |
| Azion CLI | azion create cache-setting |
azion describe cache-setting, azion list cache-setting, azion update cache-setting, azion delete cache-setting |
azion.config.js |
Uma entrada do array cache de uma Application, do tipo AzionCache |
A mesma entrada |
| Azion Lib | createCacheSetting, de azion/applications |
getCacheSetting, getCacheSettings, updateCacheSetting e deleteCacheSetting, de azion/applications |
| Terraform | O recurso azion_application_cache_setting, cuja página documenta application_id e name |
O mesmo recurso |
O PUT substitui o cache setting inteiro, e o PATCH altera apenas os campos que envia. O endpoint de listagem filtra por id e name e pagina com page e page_size. A API autentica com um personal token no header Authorization: Token <token>. Para mais informações, consulte Personal tokens.
No azion.config.js, uma entrada AzionCache carrega name, stale, queryStringSort, tieredCache, methods, browser.maxAgeSeconds, edge.maxAgeSeconds, cacheByCookie e cacheByQueryString.
General
No Azion Console, a seção General do drawer Create Cache Settings carrega o nome. O name é o único campo que a API exige.
| Controle do Console | Campo da API | Tipo | Valores | Padrão | Flag da CLI |
|---|---|---|---|---|---|
| Name | name |
string | 1 a 250 caracteres, único entre os cache settings da Application | obrigatório, sem padrão | --name |
Browser Cache
O objeto browser_cache define o que o browser é instruído a guardar. No Azion Console, os seus controles ficam na seção Browser Cache.
| Controle do Console | Campo da API | Tipo | Valores | Padrão | Flag da CLI |
|---|---|---|---|---|---|
| Radios de Browser Cache | browser_cache.behavior |
enum | Honor cache policies (honor), Override cache settings (override), No cache (no-cache) |
honor |
--browser-cache-behavior |
| Max Age sob Override cache settings | browser_cache.max_age |
integer, segundos | 0 a 31.536.000 | 0 |
--browser-cache-max-age |
honor mantém os headers Cache-Control e Expires enviados pela origem e os repassa ao browser. override substitui esses headers pelo TTL em browser_cache.max_age. Para no-cache, a opção No cache do Azion Console diz: “Disable browser caching to ensure content is always fetched directly from the server”. No azion update cache-setting, a flag de browser_cache.behavior é --browser-cache-settings.
Cache
O objeto modules.cache define por quanto tempo a Azion mantém uma cópia de uma resposta e o que faz com essa cópia. No Azion Console, os seus controles ficam na seção Cache.
| Controle do Console | Campo da API | Tipo | Valores | Padrão | Flag da CLI |
|---|---|---|---|---|---|
| Radios de Cache Behavior | modules.cache.behavior |
enum | Honor cache policies (honor), Override cache behavior (override) |
honor (API, CLI); Override cache behavior pré-selecionado no Console |
apenas --file |
| Max Age | modules.cache.max_age |
integer, segundos | 0 a 31.536.000 | 60 (API, CLI, Console) |
apenas --file |
| Stale cache | modules.cache.stale_cache.enabled |
boolean | true, false |
false (API, CLI); ativado no Console |
apenas --file |
| Large file optimization | modules.cache.large_file_cache.enabled |
boolean | true, false |
false (API, CLI); desativado no Console |
apenas --file |
| Offset (KB) | modules.cache.large_file_cache.offset |
integer, kB | 1024, fixo |
1024 |
apenas --file |
| Tiered Cache | modules.cache.tiered_cache.enabled |
boolean | true, false |
false (API); desativado no Console |
--tiered-caching-enabled sozinho falha com o erro 21001; use --file |
| Tiered Cache Region | modules.cache.tiered_cache.topology |
enum | Como nearest-region ou us-east-1 |
nearest-region (API); nearest-region, pré-selecionado no Console |
apenas --file |
honor mantém os headers Cache-Control e Expires enviados pela origem, e override os substitui pelo TTL em modules.cache.max_age. Quando a origem não envia nem Cache-Control nem Expires, honor mantém a cópia pelo Max Age do cache setting, modules.cache.max_age.
O stale cache, o campo stale_cache.enabled, permite que a Azion entregue uma cópia expirada por uma janela limitada quando a origem não responde. A Large File Optimization, o campo large_file_cache.enabled, armazena um objeto grande em fragmentos, e large_file_cache.offset carrega o tamanho deles, fixo em 1.024 kB. Tiered Cache é uma feature de Cache que adiciona uma segunda camada de cache entre o data center que responde a uma requisição e a sua origem. O tiered_cache.enabled a ativa para os objetos que esse cache setting coloca em cache, e o tiered_cache.topology seleciona onde essa camada os mantém. Um objeto tiered_cache enviado sem enabled ativa a camada. Para saber como cada um se comporta em uma requisição, consulte Expiração e atualização.
Application Accelerator
O objeto modules.application_accelerator guarda as variações de cache de um cache setting. No Azion Console, os seus quatro controles Cache vary by ficam na seção Application Accelerator, que o drawer Create Cache Settings mostra apenas enquanto Application Accelerator está ativo na Application. Enquanto Application Accelerator está desativado, a API recusa com o erro 21013 qualquer variação nesse objeto: um behavior diferente de ignore, ou um método em cache_vary_by_method. Um objeto que mantém esses padrões é aceito, mesmo com sort_enabled igual a true.
Juntos, os campos de modules.application_accelerator configuram Advanced Cache Key, uma feature de Application Accelerator. O cache_vary_by_devices usa os device groups definidos em Device Groups. Para saber o que cada behavior faz com a cache key, consulte Configurações do Application Accelerator.
| Controle do Console | Campo da API | Tipo | Valores | Padrão | Flag da CLI |
|---|---|---|---|---|---|
| Cache vary by Method > POST, OPTIONS | cache_vary_by_method |
array de enum, no máximo 2 valores | post, options |
[] |
Na criação, --enable-caching-for-options e --file. Na atualização, --enable-caching-for-options e --enable-caching-for-post |
| Cache vary by Query String > Behavior | cache_vary_by_querystring.behavior |
enum | Ignore (ignore), All (all), Allowlist (allowlist), Denylist (denylist) |
ignore |
--cache-by-query-string |
| Cache vary by Query String > Fields | cache_vary_by_querystring.fields |
array de string | nomes de argumentos de query string | [] |
--query-string-fields |
| Cache vary by Query String > Sort | cache_vary_by_querystring.sort_enabled |
boolean | true, false |
false |
Na criação, apenas --file. Na atualização, --enable-caching-string-sort |
| Cache vary by Cookies > Behavior | cache_vary_by_cookies.behavior |
enum | Ignore (ignore), All (all), Allowlist (allowlist), Denylist (denylist) |
ignore |
--cache-by-cookies |
| Cache vary by Cookies > Fields | cache_vary_by_cookies.cookie_names |
array de string | nomes de cookies | [] |
--cookie-names |
| Cache vary by Devices > Behavior | cache_vary_by_devices.behavior |
enum | Ignore (ignore), Allowlist (allowlist) |
ignore |
apenas --file |
| Cache vary by Devices > Device Group | cache_vary_by_devices.device_group |
array de integer | ids de device group | [] |
apenas --file |
No azion create cache-setting, a --enable-caching-for-options escreve options qualquer que seja o seu valor, e post exige --file. No azion update cache-setting, uma chamada que passa uma flag de método remove o outro método, então passe as duas flags para manter os dois.
ignore mantém a mesma key, quaisquer que sejam os valores, e all varia a key por todos os valores que chegam. allowlist varia a key pelos valores nomeados, e denylist varia a key por todos os valores exceto os nomeados. fields, cookie_names e device_group carregam os valores nomeados. sort_enabled agrupa os mesmos argumentos sob uma key, em qualquer ordem que cheguem. allowlist e denylist na query string exigem pelo menos um campo, ou a API retorna o erro 21018. Para os passos no Azion Console que configuram esses controles, consulte Configure a Advanced Cache Key para uma aplicação.
Corpo da requisição e comando da CLI
O corpo abaixo cria um cache setting completo pelo POST /v4/workspace/applications/{application_id}/cache_settings:
A API responde com HTTP 201, state igual a executed e o novo cache setting com o seu id em data:
O endpoint de listagem envolve os cache settings de uma Application em um envelope de página:
A CLI escreve pela linha de comando os campos cobertos por suas flags:
O comando imprime o id do novo cache setting:
No azion create cache-setting, as flags cobrem o browser cache, a variação por query string e por cookie e o cache de OPTIONS, e o azion update cache-setting também define sort_enabled e o cache de POST. Cada um dos outros campos é definido pelo --file com o corpo JSON: modules.cache.max_age, o comportamento de cache, o stale cache, a Large File Optimization e Tiered Cache.
Erros
A API responde cada requisição abaixo com HTTP 400. O corpo carrega o código, o título e um detalhe, e um erro de campo também aponta o campo.
| Código | Título | Causa | Detalhe | O que fazer |
|---|---|---|---|---|
21021 |
Edge Cache Max Age Lower Than The Minimum Allowed By Application's Application Accelerator Module |
modules.cache.max_age está abaixo de 60 em uma Application sem Application Accelerator. |
The value is lower than the minimum required when the Application's Application Accelerator Module is disabled., em /data/modules/cache/max_age, com meta.min_value igual a 60 |
Defina modules.cache.max_age como 60 ou mais, ou ative Application Accelerator na Application. |
21020 |
Edge Cache Max Age Lower Than The Minimum Allowed By The Tiered Cache Module |
modules.cache.max_age está abaixo de 3, com tiered_cache.enabled igual a true e Application Accelerator ativo. |
The value is lower than the minimum required by the Tiered Cache Module., em /data/modules/cache/max_age, com meta.min_value igual a 3 |
Defina modules.cache.max_age como 3 ou mais, ou desative Tiered Cache. |
21001 |
It's Not Possible To Use This Edge Cache Behavior. |
tiered_cache.enabled é true enquanto modules.cache.behavior é honor. |
It's not possible to use this edge cache behavior while using Tiered Cache., em /data/modules/cache/behavior |
Defina modules.cache.behavior como override; pela CLI, envie o corpo com --file. |
21013 |
This Configuration Requires The Edge Application's Application Accelerator Module |
Um campo de modules.application_accelerator varia o cache, com um behavior diferente de ignore ou um método em cache_vary_by_method, em uma Application sem Application Accelerator. |
To use this value, you must first enable the Application Accelerator module in Edge Application's Main Settings., no campo, como /data/modules/application_accelerator/cache_vary_by_method |
Defina modules.application_accelerator.enabled como true na Application, ou remova o campo. Main Settings mostra onde no Azion Console. |
21018 |
Query String Fields Are Required For Current Cache Vary By Query String Behavior |
cache_vary_by_querystring.behavior é allowlist ou denylist, e fields está vazio. |
The current behavior requires you to configure query string fields., em /data/modules/application_accelerator/cache_vary_by_querystring/fields |
Liste pelo menos um campo, ou defina o behavior como ignore ou all. |
21014 |
Cannot Delete Cache Setting |
Um DELETE atinge um cache setting que o behavior Set Cache Policy de uma regra ainda usa. |
This Cache Setting cannot be deleted because it is being used., em /data |
Altere ou exclua essa regra e repita o DELETE. |
10068 |
Max Value |
modules.cache.max_age ou browser_cache.max_age está acima de 31.536.000, ou large_file_cache.offset está acima de 1.024. |
Ensure this value is less than or equal to 31536000.; para o offset, Ensure this value is less than or equal to 1024. |
Reduza o valor até o limite que o detalhe nomeia. |
10046 |
Max Length |
name tem mais de 250 caracteres. |
Ensure this field has no more than 250 characters. |
Reduza o nome para 250 caracteres ou menos. |
10039 |
Invalid Choice |
tiered_cache.topology não é uma topologia que a API aceita. |
"<value>" is not a valid choice., em /data/modules/cache/tiered_cache/topology |
Envie uma topologia que a referência da Azion API lista, como nearest-region ou us-east-1. |
10012 |
Unique Field |
name repete o nome de outro cache setting da mesma Application. |
This field must be unique., em /data/name |
Escolha um nome que nenhum outro cache setting da Application use. |
O azion create cache-setting --tiered-caching-enabled true retorna 21001, porque a CLI só define o comportamento de cache pelo --file, então o cache setting mantém o padrão honor.
Limites
Os limites abaixo se aplicam a um cache setting. Cada linha nomeia a resposta da API além do valor.
| Valor | Limite | Além do limite |
|---|---|---|
name |
1 a 250 caracteres | HTTP 400, erro 10046 |
modules.cache.max_age |
0 a 31.536.000 segundos | HTTP 400, erro 10068 acima do máximo |
modules.cache.max_age sem Application Accelerator |
pelo menos 60 segundos | HTTP 400, erro 21021 |
modules.cache.max_age com Tiered Cache e Application Accelerator ativos |
pelo menos 3 segundos | HTTP 400, erro 21020 |
browser_cache.max_age |
0 a 31.536.000 segundos | HTTP 400, erro 10068 |
large_file_cache.offset |
1.024 kB, fixo | HTTP 400, erro 10068 acima de 1.024 |
O cache_vary_by_method aceita no máximo 2 valores. A API aceita apenas 1.024 em large_file_cache.offset. Para alterar o tamanho do fragmento, entre em contato com o time de Vendas. Para o tamanho de um objeto em cache e os limites de purge, consulte Limites de Applications.