# Azion CLI firewall-instance

Os comandos `firewall-instance` da Azion CLI criam, listam, descrevem, atualizam e excluem [instâncias de function em um firewall](/pt-br/documentacao/plataforma/firewall/functions-instances/). Uma instância vincula uma function a um firewall e guarda os argumentos que a function recebe ali. 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 firewall-instance` cria uma instância de function no firewall que você indica:

```bash
azion create firewall-instance [flags]
```

| Flag            | Curta | Tipo   | Padrão   | Descrição                                                                                                                                              |
| --------------- | ----- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `--active`      | —     | string | `"true"` | Se a instância está ativa: `true` ou `false`.                                                                                                          |
| `--args`        | —     | string | —        | Caminho para um arquivo JSON com os argumentos que a function recebe nesta instância.                                                                  |
| `--file`        | —     | string | —        | Caminho para um arquivo JSON com os atributos da instância. Use `-` para ler o JSON da entrada padrão.                                                 |
| `--firewall-id` | —     | int    | —        | ID do firewall que contém a instância.                                                                                                                 |
| `--function-id` | —     | int    | —        | **Obrigatório**, exceto quando `--file` é informada. ID da function que a instância executa. Sem ela, o comando pergunta `? Enter the Function's ID:`. |
| `--name`        | —     | string | —        | Nome da instância.                                                                                                                                     |

Este comando cria uma instância chamada `my-firewall-instance` da function com ID `12370` no firewall com ID `12353`, com os argumentos de `args.json`:

```bash
azion create firewall-instance --firewall-id 12353 --function-id 12370 --name my-firewall-instance --args ./args.json
```

O comando exibe o ID da instância:

```text
Created Firewall Function Instance with ID 12355
```

---

## Listar

`azion list firewall-instance` lista as instâncias de function de um firewall, 50 por página:

```bash
azion list firewall-instance [flags]
```

| Flag            | Curta | Tipo   | Padrão | Descrição                                                                                           |
| --------------- | ----- | ------ | ------ | --------------------------------------------------------------------------------------------------- |
| `--details`     | —     | —      | —      | Adiciona as colunas `LAST EDITOR` e `LAST MODIFIED` às colunas `ID`, `NAME`, `ACTIVE` e `FUNCTION`. |
| `--filter`      | —     | string | —      | Nome pelo qual filtrar a lista.                                                                     |
| `--firewall-id` | —     | int    | —      | ID do firewall cujas instâncias listar.                                                             |
| `--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 instâncias em cada página.                                                                |

Este comando lista as instâncias do firewall com ID `12353`:

```bash
azion list firewall-instance --firewall-id 12353
```

O comando exibe uma linha por instância. A coluna `FUNCTION` contém o ID da function que cada instância executa:

```text
ID     NAME                  ACTIVE  FUNCTION
12355  my-firewall-instance  true    12370
12356  my-file-instance      true    12370
```

---

## Descrever

`azion describe firewall-instance` exibe as configurações de uma instância de function:

```bash
azion describe firewall-instance [flags]
```

| Flag            | Curta | Tipo | Padrão | Descrição                              |
| --------------- | ----- | ---- | ------ | -------------------------------------- |
| `--firewall-id` | —     | int  | —      | ID do firewall que contém a instância. |
| `--instance-id` | —     | int  | —      | ID da instância a descrever.           |

Este comando descreve a instância com ID `12355` no firewall com ID `12353`:

```bash
azion describe firewall-instance --firewall-id 12353 --instance-id 12355
```

O comando exibe o ID, o nome e a function da instância, além de quem a alterou por último e quando:

```text
ID:              12355
Name:            my-firewall-instance
Function:        12370
Last Editor:     you@example.com
Last Modified:   "2026-01-01T12:00:00.276936Z"
```

Com `--format json`, o comando exibe o objeto completo: `active`, `args`, `azion_form`, `created_at`, `function`, `id`, `last_editor`, `last_modified` e `name`. O objeto `args` contém os argumentos que `--args` ou o arquivo JSON definiram, e `function` contém o ID da function.

Um ID de instância que não existe no firewall falha com `Error: failed to describe the Firewall Function Instance: The given ID or API's endpoint doesn't exist or isn't available. Check that the identifying information is correct`.

---

## Atualizar

`azion update firewall-instance` altera os atributos de uma instância de function:

```bash
azion update firewall-instance [flags]
```

| Flag            | Curta | Tipo   | Padrão   | Descrição                                                                                           |
| --------------- | ----- | ------ | -------- | --------------------------------------------------------------------------------------------------- |
| `--active`      | —     | string | `"true"` | Se a instância está ativa: `true` ou `false`.                                                       |
| `--args`        | —     | string | —        | Caminho para um arquivo JSON com os argumentos que a function recebe nesta instância.               |
| `--file`        | —     | string | —        | Caminho para um arquivo JSON com os atributos a alterar. Use `-` para ler o JSON da entrada padrão. |
| `--firewall-id` | —     | int    | —        | ID do firewall que contém a instância.                                                              |
| `--function-id` | —     | int    | —        | ID da function que a instância executa.                                                             |
| `--instance-id` | —     | int    | —        | ID da instância a atualizar.                                                                        |
| `--name`        | —     | string | —        | Novo nome da instância.                                                                             |

Não é possível desativar uma instância. Com `--active false`, o comando falha com este erro:

```text
Error: failed to update the Firewall Function Instance: ["You can't deactivate a function instance."]
```

Este comando renomeia a instância com ID `12355` para `my-firewall-instance-renamed`:

```bash
azion update firewall-instance --firewall-id 12353 --instance-id 12355 --name my-firewall-instance-renamed
```

O comando exibe o ID da instância atualizada. Os argumentos da instância mantêm os valores deles:

```text
Updated Firewall Function Instance with ID 12355
```

---

## Excluir

`azion delete firewall-instance` exclui uma instância de function de um firewall:

```bash
azion delete firewall-instance [flags]
```

| Flag            | Curta | Tipo | Padrão | Descrição                              |
| --------------- | ----- | ---- | ------ | -------------------------------------- |
| `--firewall-id` | —     | int  | —      | ID do firewall que contém a instância. |
| `--instance-id` | —     | int  | —      | ID da instância a excluir.             |

Este comando exclui a instância com ID `12356` do firewall com ID `12353`:

```bash
azion delete firewall-instance --firewall-id 12353 --instance-id 12356 -y
```

O comando confirma a exclusão:

```text
Firewall Function Instance 12356 was successfully deleted
```

---

## Usar um arquivo JSON

`azion create firewall-instance` e `azion update firewall-instance` leem os atributos da instância de um arquivo JSON com `--file`. Nos dois casos, passe `--firewall-id` na linha de comando.

Este arquivo cria uma instância ativa chamada `my-file-instance` da function com ID `12370`, sem argumentos. Como o arquivo contém `function`, `--function-id` não é necessária:

```json
{
  "name": "my-file-instance",
  "function": 12370,
  "active": true,
  "args": {}
}
```

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

```bash
azion create firewall-instance --firewall-id 12353 --file fwi-create.json
```

O comando exibe o ID da instância:

```text
Created Firewall Function Instance with ID 12356
```

Na atualização, passe também `--instance-id`. Este arquivo renomeia a instância e substitui os argumentos dela:

```json
{
  "name": "my-file-instance-updated",
  "args": {"mode": "updated"}
}
```

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

```bash
azion update firewall-instance --firewall-id 12353 --instance-id 12356 --file fwi-update.json
```

O comando exibe o ID da instância atualizada:

```text
Updated Firewall Function Instance with ID 12356
```

A atualização é parcial: um campo que o arquivo omite, como `active`, mantém o valor dele.

---

## Recursos relacionados

- [Opções globais](/pt-br/documentacao/devtools/cli/globals.md): As opções que todo comando aceita, como `--format`, `--out` e `-y`.
- [Instâncias de função no Firewall](/pt-br/documentacao/plataforma/firewall/functions-instances.md): O que uma instância contém e como os argumentos dela chegam à function.
- [Azion CLI function](/pt-br/documentacao/devtools/cli/recursos/function.md): Os comandos que criam a function que uma instância executa e exibem o ID dela.
- [Azion CLI firewall-rule](/pt-br/documentacao/devtools/cli/recursos/firewall-rule.md): Os comandos que criam as regras que executam uma instância em um firewall.
