# Azion CLI function-instance

Os comandos `function-instance` da Azion CLI criam, listam, descrevem, atualizam e excluem [instâncias de function](/pt-br/documentacao/plataforma/applications/functions-instances/). Uma instância de function vincula uma [function](/pt-br/documentacao/plataforma/functions/) a uma aplicação e carrega os argumentos que o código da function recebe. As opções compartilhadas por todos os comandos, como `--format`, `--out` e `-y`, estão listadas em [Opções globais da Azion CLI](/pt-br/documentacao/devtools/cli/globals/).

---

## Criar

`azion create function-instance` adiciona uma function a uma aplicação como uma instância de function:

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

| Flag               | Curta | Tipo   | Padrão   | Descrição                                                                                                         |
| ------------------ | ----- | ------ | -------- | ----------------------------------------------------------------------------------------------------------------- |
| `--active`         | —     | string | `"true"` | Define se a instância de function está ativa (`true`) ou não (`false`).                                           |
| `--application-id` | —     | int    | —        | ID da aplicação que recebe a instância de function.                                                               |
| `--args`           | —     | string | —        | Caminho de um arquivo JSON com os argumentos da instância de function.                                            |
| `--file`           | —     | string | —        | Caminho de um arquivo JSON com os atributos da instância de function. Use `-` para ler o JSON da entrada padrão.  |
| `--function-id`    | —     | int    | —        | **Obrigatório**, a menos que `--file` esteja definida. ID da function a instanciar. Sem ela, o comando pede o ID. |
| `--name`           | —     | string | —        | Nome da instância de function.                                                                                    |

`--args` recebe o caminho de um arquivo JSON, não o próprio JSON. Um JSON inline falha com este erro:

```text
Error: Failed to read the args file. Verify if the file name and its path are correct and the file's content has a valid JSON format. Run the command again using the --help flag to display more information and try again: open {"greeting":"instance"}: no such file or directory
```

Este arquivo guarda os argumentos da instância de function:

```json
{
  "greeting": "instance"
}
```

Este comando cria uma instância de function chamada `my-instance` a partir da function com ID `12359` na aplicação com ID `1234567890` e passa a ela os argumentos de `fi-args.json`:

```bash
azion create function-instance --application-id 1234567890 --function-id 12359 --name my-instance --args fi-args.json
```

O comando imprime o ID da instância de function:

```text
Created Function Instance with ID 12361
```

---

## Listar

`azion list function-instance` lista as instâncias de function de uma aplicação, 50 por página:

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

| Flag               | Curta | Tipo   | Padrão | Descrição                                                                                           |
| ------------------ | ----- | ------ | ------ | --------------------------------------------------------------------------------------------------- |
| `--application-id` | —     | int    | —      | ID da aplicação cujas instâncias de function você lista.                                            |
| `--details`        | —     | —      | —      | Adiciona as colunas `LAST EDITOR` e `LAST MODIFIED` às colunas `ID`, `NAME`, `ACTIVE` e `FUNCTION`. |
| `--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 instâncias de function em cada página.                                                    |

Este comando lista as instâncias de function da aplicação com ID `1234567890`:

```bash
azion list function-instance --application-id 1234567890
```

O comando imprime uma linha por instância de function, com o ID da function que ela executa:

```text
ID     NAME                 ACTIVE  FUNCTION
12361  my-instance          true    12359
12362  my-other-instance    true    12359
```

---

## Descrever

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

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

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

Este comando descreve a instância de function com ID `12361`:

```bash
azion describe function-instance --application-id 1234567890 --instance-id 12361
```

O comando imprime o ID, o nome, a function e a última alteração da instância de function:

```text
ID:              12361
Name:            my-instance
Function:        12359
Last Editor:     you@example.com
Last Modified:   "2026-01-01T12:00:00.08975Z"
```

A saída simples deixa os argumentos de fora. Com `--format json`, o comando imprime o objeto completo: `active`, `args`, `azion_form`, `created_at`, `function`, `id`, `last_editor`, `last_modified` e `name`. Para a instância de function acima, `args` contém o objeto lido de `fi-args.json`:

```text
{
 "active": true,
 "args": {
  "greeting": "instance"
 },
 "azion_form": {},
 "created_at": "2026-01-01T12:00:00.090238Z",
 "function": 12359,
 "id": 12361,
 "last_editor": "you@example.com",
 "last_modified": "2026-01-01T12:00:00.08975Z",
 "name": "my-instance"
}
```

---

## Atualizar

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

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

| Flag               | Curta | Tipo   | Padrão   | Descrição                                                                                         |
| ------------------ | ----- | ------ | -------- | ------------------------------------------------------------------------------------------------- |
| `--active`         | —     | string | `"true"` | Define se a instância de function está ativa (`true`) ou não (`false`).                           |
| `--application-id` | —     | int    | —        | ID da aplicação que contém a instância de function.                                               |
| `--args`           | —     | string | —        | Caminho de um arquivo JSON com os novos argumentos da instância de function.                      |
| `--file`           | —     | string | —        | Caminho de um arquivo JSON com os atributos a alterar. Use `-` para ler o JSON da entrada padrão. |
| `--function-id`    | —     | int    | —        | ID da function que a instância executa.                                                           |
| `--instance-id`    | —     | int    | —        | ID da instância de function a atualizar.                                                          |
| `--name`           | —     | string | —        | Novo nome da instância de function.                                                               |

Uma instância de function permanece ativa. Com `--active false`, a API recusa a atualização e o comando falha com este erro:

```text
Error: Failed to update the Function Instance: ["You can't deactivate a function instance."]. Check your settings and try again. If the error persists, contact Azion support
```

Este comando renomeia a instância de function com ID `12361` para `my-instance-renamed`:

```bash
azion update function-instance --application-id 1234567890 --instance-id 12361 --name my-instance-renamed
```

O comando imprime o ID da instância de function atualizada. Os argumentos e o estado ativo mantêm seus valores:

```text
Updated Function Instance with ID 12361
```

---

## Excluir

`azion delete function-instance` remove uma instância de function de uma aplicação:

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

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

Este comando exclui a instância de function com ID `12362`:

```bash
azion delete function-instance --application-id 1234567890 --instance-id 12362 -y
```

O comando confirma a exclusão e imprime o ID como `%!s(int64=12362)`:

```text
Function Instance %!s(int64=12362) was successfully deleted
```

---

## Usar um arquivo JSON

`azion create function-instance` e `azion update function-instance` leem os atributos da instância de function de um arquivo JSON com `--file`. Dentro do arquivo, `args` é um objeto JSON, não um caminho.

Este arquivo cria uma instância de function ativa chamada `my-other-instance` a partir da function com ID `12359`. O comando lê `name`, `function`, `active` e `args` dele:

```json
{
  "name": "my-other-instance",
  "function": 12359,
  "active": true,
  "args": {"greeting": "from-file"}
}
```

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

```bash
azion create function-instance --application-id 1234567890 --file fi-create.json
```

O comando imprime o ID da instância de function:

```text
Created Function Instance with ID 12362
```

Na atualização, passe o ID da aplicação e o ID da instância de function na linha de comando. Este arquivo altera o nome e os argumentos da instância de function com ID `12362`:

```json
{
  "name": "my-other-instance-updated",
  "args": {"greeting": "updated-from-file"}
}
```

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

```bash
azion update function-instance --application-id 1234567890 --instance-id 12362 --file fi-update.json
```

O comando imprime o ID da instância de function atualizada:

```text
Updated Function Instance with ID 12362
```

Os campos que o arquivo deixa de fora mantêm seus valores: a instância de function acima continua ativa.

---

## 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`.
- [Functions](/pt-br/documentacao/plataforma/functions.md): O que uma function executa e como suas instâncias passam argumentos a ela.
- [Azion CLI function](/pt-br/documentacao/devtools/cli/recursos/function.md): Os comandos que criam a function que uma instância de function executa.
- [Azion CLI rules-engine](/pt-br/documentacao/devtools/cli/recursos/rules-engine.md): Os comandos que criam as regras que executam uma instância de function.
