# Azion CLI workload

Os comandos `workload` da Azion CLI criam, listam, descrevem, atualizam e excluem [Workloads](/pt-br/documentacao/plataforma/workloads/), o recurso que responde aos domínios de um site ou de uma API e guarda as configurações de TLS, mTLS e portas deles. A aplicação que responde a esses domínios é definida por um deployment, que os [comandos workload-deployment](/pt-br/documentacao/devtools/cli/recursos/workload-deployment/) gerenciam. 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 workload` cria um workload com o nome que você passa:

```bash
azion create workload [flags]
```

| Flag       | Curta | Tipo   | Padrão   | Descrição                                                                                                          |
| ---------- | ----- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------ |
| `--active` | —     | string | `"true"` | Ativa (`true`) ou desativa (`false`) o workload.                                                                   |
| `--file`   | —     | string | —        | Caminho de um arquivo JSON com os atributos do workload. Use `-` para ler o JSON da entrada padrão.                |
| `--name`   | —     | string | —        | **Obrigatório**, a menos que `--file` esteja definido. Nome do workload. Sem essa flag, o comando pergunta o nome. |

Este comando cria um workload chamado `my-workload`:

```bash
azion create workload --name my-workload
```

O comando imprime o ID do workload:

```text
Created Workload with ID 1234567900
```

---

## Listar

`azion list workload` lista os workloads da sua conta, 50 por página:

```bash
azion list workload [flags]
```

| Flag          | Curta | Tipo   | Padrão | Descrição                                                                               |
| ------------- | ----- | ------ | ------ | --------------------------------------------------------------------------------------- |
| `--details`   | —     | —      | —      | Adiciona as colunas `ACTIVE`, `LAST EDITOR` e `LAST MODIFIED` às colunas `ID` e `NAME`. |
| `--filter`    | —     | string | —      | Nome pelo qual a lista é filtrada.                                                      |
| `--order-by`  | —     | string | —      | Campo pelo qual a lista é ordenada.                                                     |
| `--page`      | —     | int    | `1`    | Número da página a retornar.                                                            |
| `--page-size` | —     | int    | `50`   | Número de workloads em cada página.                                                     |

Este comando retorna a primeira página de uma lista dividida em páginas de dois workloads:

```bash
azion list workload --page 1 --page-size 2
```

O comando imprime uma linha por workload:

```text
ID          NAME
1234567905  my-blog
1234567906  my-store
```

---

## Descrever

`azion describe workload` imprime as configurações de um workload:

```bash
azion describe workload [flags]
```

| Flag            | Curta | Tipo | Padrão | Descrição                   |
| --------------- | ----- | ---- | ------ | --------------------------- |
| `--workload-id` | —     | int  | —      | ID do workload a descrever. |

Este comando descreve o workload com ID `1234567900`:

```bash
azion describe workload --workload-id 1234567900
```

O comando imprime o ID, o nome, o estado e a última alteração do workload:

```text
ID:              1234567900
Name:            my-workload
Active:          true
Last Editor:     you@example.com
Last Modified:   "2026-01-01T12:00:00.83424Z"
```

Com `--format json`, o comando imprime o objeto completo: `active`, `created_at`, `domains`, `id`, `infrastructure`, `last_editor`, `last_modified`, `mtls`, `name`, `product_version`, `protocols`, `tls`, `workload_domain` e `workload_domain_allow_access`. O campo `workload_domain` guarda o domínio que a Azion gera para o workload, que termina em `.map.azionedge.net`.

Um ID que não existe falha com este erro:

```text
Error: Failed to describe the Domain: 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 workload` altera o nome, o estado ativo ou os domínios de um workload:

```bash
azion update workload [flags]
```

| Flag            | Curta | Tipo    | Padrão   | Descrição                                                                                                                                                                                                                            |
| --------------- | ----- | ------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `--active`      | —     | string  | `"true"` | Ativa (`true`) ou desativa (`false`) o workload.                                                                                                                                                                                     |
| `--domains`     | —     | strings | —        | Lista de [domínios](/pt-br/documentacao/plataforma/workloads/domains/) aos quais o workload responde. A flag `--alternate-domains` do exemplo da ajuda do comando não existe e falha com `Error: unknown flag: --alternate-domains`. |
| `--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 workload.                                                                                                                                                                                                               |
| `--workload-id` | —     | int     | —        | ID do workload a atualizar.                                                                                                                                                                                                          |

O comando lê o ID do workload do campo `"id"` do JSON de `--file`. Uma atualização feita só com flags falha com este erro, mesmo quando `--workload-id` traz um ID válido:

```text
Error: Failed to update the Workload: 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.
```

Este arquivo renomeia o workload com ID `1234567901` para `my-site-updated`:

```json
{
  "id": 1234567901,
  "name": "my-site-updated"
}
```

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

```bash
azion update workload --file wl-update.json
```

O comando imprime o ID do workload atualizado:

```text
Updated Workload with ID 1234567901
```

Os campos que ficam fora do arquivo mantêm os valores deles.

---

## Excluir

`azion delete workload` exclui um workload:

```bash
azion delete workload [flags]
```

| Flag            | Curta | Tipo | Padrão | Descrição                 |
| --------------- | ----- | ---- | ------ | ------------------------- |
| `--workload-id` | —     | int  | —      | ID do workload a excluir. |

Este comando exclui o workload com ID `1234567900`:

```bash
azion delete workload --workload-id 1234567900 -y
```

O comando confirma a exclusão:

```text
Workload 1234567900 was successfully deleted
```

---

## Usar um arquivo JSON

`azion create workload` e `azion update workload` leem os atributos do workload de um arquivo JSON com `--file`.

Este arquivo cria um workload ativo chamado `my-site`. O comando lê `name` e `active` dele:

```json
{
  "name": "my-site",
  "active": true
}
```

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

```bash
azion create workload --file wl-create.json
```

O comando imprime o ID do workload:

```text
Created Workload with ID 1234567901
```

Na atualização, o arquivo traz `"id"` e os campos a alterar, como `name` ou `domains`, como mostra [Atualizar](#atualizar). O campo `domains` recebe uma lista de domínios. A API recusa um domínio que a sua conta não tem permissão para usar. Este arquivo lista `www.example.com` nos `domains` do workload com ID `1234567901`:

```json
{
  "id": 1234567901,
  "domains": ["www.example.com"]
}
```

O comando falha com este erro:

```text
Error: Failed to update the Workload: ["This account is not allowed to use the following CNAMEs: example.com."]. Check your settings and try again. If the error persists, contact Azion support.
```

---

## Recursos relacionados

- [Opções globais](/pt-br/documentacao/devtools/cli/globals.md): As opções que todo comando aceita, como `--format`, `--out` e `-y`.
- [Workloads](/pt-br/documentacao/plataforma/workloads.md): O que um workload guarda e como ele coloca uma aplicação nos seus domínios.
- [Azion CLI workload-deployment](/pt-br/documentacao/devtools/cli/recursos/workload-deployment.md): Os comandos que definem a aplicação e o firewall que um workload usa.
- [Azion CLI application](/pt-br/documentacao/devtools/cli/recursos/application.md): Os comandos que criam e gerenciam a aplicação que um deployment define.
