# Azion CLI cache-setting

Os comandos `cache-setting` da Azion CLI criam, listam, descrevem, atualizam e excluem os [cache settings](/pt-br/documentacao/plataforma/applications/cache/cache-settings/) de uma aplicação, os objetos que dizem ao browser e ao cache da Azion por quanto tempo guardar uma resposta. Cada comando recebe o `--application-id` da aplicação que guarda o setting. Os valores que cada flag aceita, e o campo que cada uma escreve, estão na página de cache settings. As opções que todo comando aceita, como `--format`, `--out` e `-y`, estão em [Opções globais](/pt-br/documentacao/devtools/cli/globals/).

---

## Criar

`azion create cache-setting` cria um cache setting em uma aplicação com o nome e os valores que você passa:

```bash
azion create cache-setting [flags]
```

| Flag                           | Curta | Tipo    | Padrão     | Descrição                                                                                                                              |
| ------------------------------ | ----- | ------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `--application-id`             | —     | int     | —          | ID da aplicação que guarda o cache setting.                                                                                            |
| `--browser-cache-behavior`     | —     | string  | `"honor"`  | Como o browser armazena o conteúdo em cache, por exemplo `honor` ou `override`.                                                        |
| `--browser-cache-max-age`      | —     | int     | —          | Tempo, em segundos, que o browser guarda o conteúdo antes que ele expire.                                                              |
| `--cache-by-cookies`           | —     | string  | `"ignore"` | Se os cookies variam o conteúdo em cache.                                                                                              |
| `--cache-by-query-string`      | —     | string  | `"ignore"` | Como as variações de query string de uma URL variam o conteúdo em cache.                                                               |
| `--cookie-names`               | —     | strings | —          | Nomes dos cookies cujo nome e valor distinguem objetos em cache.                                                                       |
| `--enable-caching-for-options` | —     | string  | `"false"`  | Ativa (`true`) ou desativa (`false`) o cache de requisições `OPTIONS`.                                                                 |
| `--enable-caching-for-post`    | —     | string  | —          | Ativa (`true`) ou desativa (`false`) o cache de requisições `POST`.                                                                    |
| `--file`                       | —     | string  | —          | Caminho de um arquivo JSON com os atributos do cache setting. Use `-` para ler o JSON da entrada padrão.                               |
| `--name`                       | —     | string  | —          | Nome do cache setting.                                                                                                                 |
| `--query-string-fields`        | —     | strings | —          | Parâmetros de query string que dividem o cache de uma mesma URL.                                                                       |
| `--tiered-caching-enabled`     | —     | string  | —          | Ativa (`true`) ou desativa (`false`) [Tiered Cache](/pt-br/documentacao/plataforma/applications/cache/tiered-cache/) no cache setting. |

`--enable-caching-for-post true` exige Application Accelerator ativado na aplicação. Sem ele, o comando falha com este erro:

```text
Error: Failed to create the Cache Settings configuration: ["To use this value, you must first enable the Application Accelerator module in Edge Application's Main Settings."]. Check your settings and try again. If the error persists, contact Azion support.
```

Este comando cria um cache setting chamado `my-cache` na aplicação com ID `1234567890` e define que o browser guarde o conteúdo por uma hora:

```bash
azion create cache-setting --application-id 1234567890 --name my-cache --browser-cache-behavior override --browser-cache-max-age 3600
```

O comando imprime o ID do cache setting:

```text
Created Cache Settings configuration with ID 123466
```

---

## Listar

`azion list cache-setting` lista os cache settings de uma aplicação, 50 por página:

```bash
azion list cache-setting [flags]
```

| Flag               | Curta | Tipo   | Padrão | Descrição                                                                                           |
| ------------------ | ----- | ------ | ------ | --------------------------------------------------------------------------------------------------- |
| `--application-id` | —     | int    | —      | **Obrigatório**. ID da aplicação cujos cache settings você lista. Sem ele, o comando pergunta o ID. |
| `--details`        | —     | —      | —      | Substitui a coluna `BROWSER CACHE SETTINGS` pelas colunas `BROWSER CACHE` e `CACHE`.                |
| `--filter`         | —     | string | —      | Nome pelo qual filtrar a lista.                                                                     |
| `--order-by`       | —     | string | —      | Campo pelo qual ordenar a lista.                                                                    |
| `--page`           | —     | int    | `1`    | Número da página a retornar.                                                                        |
| `--page-size`      | —     | int    | `50`   | Número de cache settings em cada página.                                                            |

Este comando lista os cache settings da aplicação com ID `1234567890`, com o browser cache e o comportamento de cache de cada um:

```bash
azion list cache-setting --application-id 1234567890 --details
```

O comando imprime uma linha por cache setting:

```text
ID      NAME                    BROWSER CACHE  CACHE
123466  my-cache                override       honor
123467  my-cache-file           honor          override
```

---

## Descrever

`azion describe cache-setting` imprime os valores de um cache setting:

```bash
azion describe cache-setting [flags]
```

| Flag                 | Curta | Tipo | Padrão | Descrição                                                    |
| -------------------- | ----- | ---- | ------ | ------------------------------------------------------------ |
| `--application-id`   | —     | int  | —      | **Obrigatório**. ID da aplicação que guarda o cache setting. |
| `--cache-setting-id` | —     | int  | —      | **Obrigatório**. ID do cache setting a descrever.            |

Este comando descreve o cache setting com ID `123466`:

```bash
azion describe cache-setting --application-id 1234567890 --cache-setting-id 123466
```

O comando imprime o ID, o nome, o browser cache e os valores de cache do setting:

```text
ID:                       123466
Name:                     my-cache
Browser Cache Settings:   {"behavior":"override","max_age":3600}
Modules:                  {"application_accelerator":{"cache_vary_by_cookies":{"behavior":"ignore","cookie_names":[]},"cache_vary_by_devices":{"behavior":"ignore","device_group":[]},"cache_vary_by_method":[],"cache_vary_by_querystring":{"behavior":"ignore","fields":[],"sort_enabled":false}},"cache":{"behavior":"honor","large_file_cache":{"enabled":false,"offset":1024},"max_age":60,"stale_cache":{"enabled":false},"tiered_cache":{"enabled":false}}}
```

Com `--format json`, o comando imprime o objeto completo: `browser_cache`, `created_at`, `id`, `modules` e `name`. O objeto `modules` guarda `application_accelerator`, com a variação de cache por cookies, dispositivos, método e query string, e `cache`, com o comportamento de cache, `max_age`, `large_file_cache`, `stale_cache` e `tiered_cache`.

---

## Atualizar

`azion update cache-setting` altera o nome ou os valores de um cache setting:

```bash
azion update cache-setting [flags]
```

| Flag                           | Curta | Tipo    | Padrão     | Descrição                                                                                            |
| ------------------------------ | ----- | ------- | ---------- | ---------------------------------------------------------------------------------------------------- |
| `--application-id`             | —     | int     | —          | ID da aplicação que guarda o cache setting.                                                          |
| `--browser-cache-max-age`      | —     | int     | —          | Tempo, em segundos, que o browser guarda o conteúdo antes que ele expire.                            |
| `--browser-cache-settings`     | —     | string  | `"honor"`  | Como o browser armazena o conteúdo em cache. Na criação, o mesmo valor é `--browser-cache-behavior`. |
| `--cache-by-cookies`           | —     | string  | `"ignore"` | Se os cookies variam o conteúdo em cache.                                                            |
| `--cache-by-query-string`      | —     | string  | `"ignore"` | Como as variações de query string de uma URL variam o conteúdo em cache.                             |
| `--cache-setting-id`           | —     | int     | —          | ID do cache setting a atualizar.                                                                     |
| `--cookie-names`               | —     | strings | —          | Nomes dos cookies cujo nome e valor distinguem objetos em cache.                                     |
| `--enable-caching-for-options` | —     | string  | `"false"`  | Ativa (`true`) ou desativa (`false`) o cache de requisições `OPTIONS`.                               |
| `--enable-caching-for-post`    | —     | string  | —          | Ativa (`true`) ou desativa (`false`) o cache de requisições `POST`.                                  |
| `--enable-caching-string-sort` | —     | string  | —          | Ativa (`true`) ou desativa (`false`) a ordenação da query string para o cache.                       |
| `--file`                       | —     | string  | —          | Caminho de um arquivo JSON com os atributos a alterar. Use `-` para ler o JSON da entrada padrão.    |
| `--name`                       | —     | string  | —          | Novo nome do cache setting.                                                                          |
| `--query-string-fields`        | —     | strings | —          | Parâmetros de query string que dividem o cache de uma mesma URL.                                     |

Para alterar o browser cache de um setting, use `--file`, como em [Usar um arquivo JSON](#usar-um-arquivo-json).

Este comando renomeia o cache setting com ID `123466` para `my-cache-renamed`:

```bash
azion update cache-setting --application-id 1234567890 --cache-setting-id 123466 --name my-cache-renamed
```

O comando imprime o ID do cache setting atualizado:

```text
Updated a Cache Settings configuration with ID 123466
```

---

## Excluir

`azion delete cache-setting` exclui um cache setting de uma aplicação:

```bash
azion delete cache-setting [flags]
```

| Flag                 | Curta | Tipo | Padrão | Descrição                                   |
| -------------------- | ----- | ---- | ------ | ------------------------------------------- |
| `--application-id`   | —     | int  | —      | ID da aplicação que guarda o cache setting. |
| `--cache-setting-id` | —     | int  | —      | ID do cache setting a excluir.              |

Este comando exclui o cache setting com ID `123467`:

```bash
azion delete cache-setting --application-id 1234567890 --cache-setting-id 123467 -y
```

O comando confirma a exclusão:

```text
Caches settings configuration 123467 was successfully deleted
```

---

## Usar um arquivo JSON

`azion create cache-setting` e `azion update cache-setting` leem os atributos do cache setting de um arquivo JSON com `--file`. O arquivo recebe os campos que nenhuma flag define, como o comportamento de cache e `max_age` em `modules.cache`.

Este arquivo cria um cache setting chamado `my-cache-file`. O browser segue os headers de cache da origem, e o cache da Azion guarda o conteúdo por 600 segundos:

```json
{
  "name": "my-cache-file",
  "browser_cache": {
    "behavior": "honor",
    "max_age": 0
  },
  "modules": {
    "cache": {
      "behavior": "override",
      "max_age": 600
    }
  }
}
```

Passe o arquivo e o ID da aplicação para o comando de criação:

```bash
azion create cache-setting --application-id 1234567890 --file cache-create.json
```

O comando imprime o ID do cache setting:

```text
Created Cache Settings configuration with ID 123467
```

Na atualização, o arquivo traz apenas os campos a alterar, e os campos que ele omite mantêm os seus valores. Este arquivo renomeia o cache setting e define que o browser guarde o conteúdo por 300 segundos:

```json
{
  "name": "my-cache-file-updated",
  "browser_cache": {
    "behavior": "override",
    "max_age": 300
  }
}
```

Passe o arquivo com o ID da aplicação e o ID do cache setting para o comando de atualização:

```bash
azion update cache-setting --application-id 1234567890 --cache-setting-id 123467 --file cache-update.json
```

O comando imprime o ID do cache setting atualizado:

```text
Updated a Cache Settings configuration with ID 123467
```

Depois dessa atualização, `modules.cache` ainda guarda o comportamento `override` e o `max_age` de `600` que o arquivo de criação definiu.

---

## Recursos relacionados

- [Opções globais](/pt-br/documentacao/devtools/cli/globals.md): As opções que todo comando aceita, como `--format`, `--out` e `-y`.
- [Cache settings](/pt-br/documentacao/plataforma/applications/cache/cache-settings.md): Cada campo de um cache setting, os valores que ele aceita e os erros que a API retorna.
- [Azion CLI application](/pt-br/documentacao/devtools/cli/recursos/application.md): Os comandos que criam e gerenciam a aplicação que guarda os cache settings.
- [Azion CLI rules-engine](/pt-br/documentacao/devtools/cli/recursos/rules-engine.md): Os comandos que criam as regras que aplicam um cache setting às requisições.
