# Azion CLI variables

Os comandos `variables` da Azion CLI criam, listam, descrevem, atualizam e excluem as [variáveis de ambiente](/pt-br/documentacao/plataforma/functions/environment-variables/) da sua conta, os pares chave-valor e segredos que uma function lê pela chave em tempo de execução. Cada variável tem um UUID, que a flag `--variable-id` recebe. As opções que todo comando aceita, como `--format`, `--out` e `-y`, estão em [Opções globais da Azion CLI](/pt-br/documentacao/devtools/cli/globals/).

---

## Criar

`azion create variables` cria uma variável de ambiente ou um segredo para as suas functions usarem:

```bash
azion create variables [flags]
```

| Flag       | Curta | Tipo   | Padrão | Descrição                                                                                                  |
| ---------- | ----- | ------ | ------ | ---------------------------------------------------------------------------------------------------------- |
| `--file`   | —     | string | —      | Caminho de um arquivo JSON com os atributos da variável. Use `-` para ler o JSON da entrada padrão.        |
| `--key`    | —     | string | —      | Chave da variável. Uma function lê o valor por essa chave.                                                 |
| `--secret` | —     | string | —      | Marca o valor como confidencial (`true`) ou não (`false`). A CLI imprime um valor confidencial como vazio. |
| `--value`  | —     | string | —      | **Obrigatório**, a menos que `--file` esteja definida. Valor da variável. Sem ela, o comando pede o valor. |

Este comando cria uma variável com a chave `MY_VARIABLE` e um valor que não é confidencial:

```bash
azion create variables --key MY_VARIABLE --value plain-value --secret false
```

O comando imprime o UUID da variável:

```text
Created variable with UUID 00000000-0000-0000-0000-000000000005
```

---

## Listar

`azion list variables` lista as variáveis de ambiente e os segredos da sua conta:

```bash
azion list variables [flags]
```

| Flag        | Curta | Tipo | Padrão | Descrição                                                                                                                                    |
| ----------- | ----- | ---- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `--details` | —     | —    | —      | Adiciona as colunas `SECRET` e `LAST EDITOR` às colunas `ID`, `KEY` e `VALUE`.                                                               |
| `--dump`    | —     | —    | —      | Grava as variáveis em um arquivo `.env` no diretório atual, uma linha `KEY=value` por variável. Os valores dos segredos são gravados vazios. |

Este comando lista as variáveis da conta:

```bash
azion list variables
```

O comando imprime uma linha por variável. A coluna `VALUE` de um segredo fica vazia:

```text
ID                                    KEY                 VALUE
00000000-0000-0000-0000-000000000005  MY_VARIABLE         plain-value
00000000-0000-0000-0000-000000000006  MY_SECRET
```

Com `--dump`, o comando imprime `Variables file (.env) dumped successfully` e grava este arquivo `.env` para as mesmas duas variáveis:

```text
MY_VARIABLE=plain-value
MY_SECRET=
```

---

## Descrever

`azion describe variables` imprime os atributos de uma variável:

```bash
azion describe variables [flags]
```

| Flag            | Curta | Tipo   | Padrão | Descrição                                      |
| --------------- | ----- | ------ | ------ | ---------------------------------------------- |
| `--variable-id` | —     | string | —      | **Obrigatório**. UUID da variável a descrever. |

Este comando descreve a variável com UUID `00000000-0000-0000-0000-000000000005`:

```bash
azion describe variables --variable-id 00000000-0000-0000-0000-000000000005
```

O comando imprime a chave, o valor e o histórico da variável:

```text
Uuid:          00000000-0000-0000-0000-000000000005
Key:           MY_VARIABLE
Value:         plain-value
Secret:        false
Last Editor:   you@example.com
Create At:     "2026-01-01T12:00:00.139877Z"
Update At:     "2026-01-01T12:00:00.139898Z"
```

Com `--format json`, o comando imprime o objeto completo: `created_at`, `key`, `last_editor`, `secret`, `updated_at`, `uuid` e `value`. Para um segredo, `value` é uma string vazia (`""`). Com `--out var-describe.json`, o comando grava esse objeto JSON no arquivo e imprime `File successfully written to: var-describe.json`.

Um UUID que não existe, ou um ID numérico, falha com este erro:

```text
Error: Failed to describe the variable: The given ID or API's endpoint doesn't exist or isn't available. Check that the identifying information is correct. Check your settings and try again. If the error persists, contact Azion support.
```

---

## Atualizar

`azion update variables` altera a chave, o valor ou a confidencialidade de uma variável:

```bash
azion update variables [flags]
```

| Flag            | Curta | Tipo   | Padrão | Descrição                                                                                                                                            |
| --------------- | ----- | ------ | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--file`        | —     | string | —      | Caminho de um arquivo JSON com os atributos a alterar. Use `-` para ler o JSON da entrada padrão.                                                    |
| `--key`         | —     | string | —      | **Obrigatório**, a menos que `--file` esteja definida. Chave da variável. Sem ela, o comando pede a chave, mesmo quando você altera somente o valor. |
| `--secret`      | —     | string | —      | Marca o valor como confidencial (`true`) ou não (`false`).                                                                                           |
| `--value`       | —     | string | —      | Valor a definir na variável.                                                                                                                         |
| `--variable-id` | —     | string | `"0"`  | **Obrigatório**, a menos que o JSON de `--file` traga `"uuid"`. UUID da variável a atualizar.                                                        |

Este comando define o valor da variável com UUID `00000000-0000-0000-0000-000000000005` como `updated-value` e mantém sua chave:

```bash
azion update variables --variable-id 00000000-0000-0000-0000-000000000005 --key MY_VARIABLE --value updated-value --secret false
```

O comando imprime o UUID da variável atualizada:

```text
Updated variable with UUID 00000000-0000-0000-0000-000000000005
```

Um describe da variável passa então a retornar `updated-value` como seu valor.

---

## Excluir

`azion delete variables` exclui uma variável:

```bash
azion delete variables [flags]
```

| Flag            | Curta | Tipo   | Padrão | Descrição                                    |
| --------------- | ----- | ------ | ------ | -------------------------------------------- |
| `--variable-id` | —     | string | —      | **Obrigatório**. UUID da variável a excluir. |

Este comando exclui a variável com UUID `00000000-0000-0000-0000-000000000005`:

```bash
azion delete variables --variable-id 00000000-0000-0000-0000-000000000005
```

O comando confirma a exclusão:

```text
Variable 00000000-0000-0000-0000-000000000005 was successfully deleted
```

---

## Usar um arquivo JSON

`azion create variables` e `azion update variables` leem os atributos de uma variável de um arquivo JSON com `--file`.

Este arquivo cria um segredo com a chave `MY_SECRET`. O comando lê `key`, `value` e `secret` dele:

```json
{
  "key": "MY_SECRET",
  "value": "my-secret-value",
  "secret": true
}
```

Passe o arquivo para o comando de criação:

```bash
azion create variables --file var-create.json
```

O comando imprime o UUID do segredo:

```text
Created variable with UUID 00000000-0000-0000-0000-000000000006
```

Na atualização, o comando também lê `"uuid"` do arquivo, então `--variable-id` não é necessária. Este arquivo altera o valor do segredo com UUID `00000000-0000-0000-0000-000000000006`:

```json
{
  "uuid": "00000000-0000-0000-0000-000000000006",
  "key": "MY_SECRET",
  "value": "my-secret-value-2",
  "secret": true
}
```

Passe o arquivo para o comando de atualização:

```bash
azion update variables --file var-update.json
```

O comando imprime o UUID do segredo atualizado:

```text
Updated variable with UUID 00000000-0000-0000-0000-000000000006
```

Um describe do segredo então mostra um horário de `updated_at` posterior e `"value": ""`, porque a CLI não imprime de volta um valor confidencial.

---

## Recursos relacionados

- [Opções globais da Azion CLI](/pt-br/documentacao/devtools/cli/globals.md): As opções que todo comando aceita, como `--format`, `--out` e `-y`.
- [Variáveis de ambiente](/pt-br/documentacao/plataforma/functions/environment-variables.md): O que uma variável guarda, como uma function a lê e os limites que se aplicam.
- [Azion CLI function](/pt-br/documentacao/devtools/cli/recursos/function.md): Os comandos que criam e gerenciam as functions que leem essas variáveis.
