# Azion CLI workload-deployment

Os comandos `workload-deployment` da Azion CLI criam, listam e descrevem o deployment de um workload em [Workloads](/pt-br/documentacao/plataforma/workloads/). Um deployment define a aplicação, o firewall e o conjunto de custom pages que atendem o tráfego de um workload, e um workload guarda um deployment. A CLI não tem comando que atualize ou exclua um deployment. Para alterar um, consulte [Configurações de workload](/pt-br/documentacao/plataforma/workloads/configuracoes/). 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-deployment` cria um deployment em um workload com as configurações que você passa:

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

| Flag               | Curta | Tipo   | Padrão | Descrição                                                                                             |
| ------------------ | ----- | ------ | ------ | ----------------------------------------------------------------------------------------------------- |
| `--active`         | —     | string | —      | Ativa (`true`) ou desativa (`false`) o deployment.                                                    |
| `--application-id` | —     | int    | —      | ID da aplicação que atende o tráfego do workload.                                                     |
| `--current`        | —     | string | —      | Recebe `true` ou `false`. Com `true`, este deployment é o que o workload executa.                     |
| `--custom-page`    | —     | string | —      | ID do conjunto de custom pages que substitui as respostas de erro do workload.                        |
| `--file`           | —     | string | —      | Caminho de um arquivo JSON com os atributos do deployment. Use `-` para ler o JSON da entrada padrão. |
| `--firewall-id`    | —     | int    | —      | ID do firewall que executa as regras dele nas requisições antes da aplicação.                         |
| `--name`           | —     | string | —      | Nome do deployment.                                                                                   |
| `--strategy-type`  | —     | string | —      | Tipo da estratégia de deployment, como `default`.                                                     |
| `--workload-id`    | —     | int    | —      | ID do workload que guarda o deployment.                                                               |

Este comando cria um deployment chamado `my-deployment` no workload com ID `1234567900`. O deployment envia o tráfego para a aplicação com ID `1234567890` e usa o conjunto de custom pages com ID `123`:

```bash
azion create workload-deployment --workload-id 1234567900 --name my-deployment --strategy-type default --application-id 1234567890 --custom-page 123 --active true --current true
```

O comando imprime o ID do deployment:

```text
Created Workload Deployment with ID 123470
```

---

## Listar

`azion list workload-deployment` lista os deployments de um workload, 50 por página:

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

| Flag            | Curta | Tipo   | Padrão | Descrição                                                                                                                                               |
| --------------- | ----- | ------ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--details`     | —     | —      | —      | Adiciona uma coluna com o ID da aplicação e uma coluna com o ID do firewall às colunas `ID` e `CURRENT`.                                                |
| `--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 deployments em cada página.                                                                                                                   |
| `--workload-id` | —     | int    | —      | **Obrigatório**. ID do workload cujos deployments o comando lista. Sem essa flag, o comando pergunta `? Enter the Workload ID to list its Deployments`. |

Este comando lista os deployments do workload com ID `1234567900`, com as colunas da aplicação e do firewall:

```bash
azion list workload-deployment --workload-id 1234567900 --details
```

O comando imprime uma linha por deployment. Um deployment sem firewall mostra `0` na coluna do firewall:

```text
ID      CURRENT  EDGE APPLICATION  EDGE FIREWALL
123470  true     1234567890        0
```

---

## Descrever

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

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

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

---

## Usar um arquivo JSON

`azion create workload-deployment` lê os atributos do deployment de um arquivo JSON com `--file`.

Este arquivo cria um deployment ativo chamado `my-deployment-file` que envia o tráfego para a aplicação com ID `1234567890`. O comando lê `name`, `active`, `current` e `strategy` dele:

```json
{
  "name": "my-deployment-file",
  "active": true,
  "current": false,
  "strategy": {
    "type": "default",
    "attributes": {
      "application": 1234567890
    }
  }
}
```

O arquivo não traz ID de workload, então passe `--workload-id` na linha de comando junto com o arquivo:

```bash
azion create workload-deployment --workload-id 1234567901 --file dep-create.json
```

O comando imprime o ID do deployment:

```text
Created Workload Deployment with ID 123471
```

Um workload guarda um deployment. Passado para um workload que já guarda um deployment, o mesmo arquivo falha com este erro:

```text
Error: Failed to create the Workload Deployment: ["The maximum number of deployments allowed per workload is 1."]. 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 o deployment dele vincula uma aplicação aos domínios.
- [Azion CLI workload](/pt-br/documentacao/devtools/cli/recursos/workload.md): Os comandos que criam e gerenciam o workload ao qual um deployment pertence.
- [Azion CLI application](/pt-br/documentacao/devtools/cli/recursos/application.md): Os comandos que criam e gerenciam a aplicação que um deployment atende.
