---
name: azion-instancie-uma-funcao-em-uma-aplicacao
description: >-
  Vincule uma função a uma aplicação pelo Azion Console ou pela Azion API, nomeie a instância e passe seus Args em JSON.
---

# Instancie uma função em uma aplicação

Você pode criar uma instância de função em uma aplicação pelo Azion Console ou pela Azion API. A instância vincula uma função a uma aplicação e carrega os Args passados para o contexto de execução.

Uma instância sem uma regra do Rules Engine nunca é executada. A regra seleciona a instância com o comportamento **Run Function** e define os critérios que a acionam. Para adicionar essa regra, consulte [Execute uma função em uma aplicação](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/functions-e-runtime/funcoes-serverless/).

Para criar o mesmo objeto em um firewall, consulte [Instancie uma função em um firewall](/pt-br/documentacao/guias/seguranca-de-aplicacoes/firewall-e-waf/instanciar-functions/).

---

## Pré-requisitos

- Uma aplicação. Para criar uma, consulte [Primeiros passos com Applications](/pt-br/documentacao/plataforma/applications/primeiros-passos/).
- Uma função na conta. Use uma do [Azion Marketplace](/pt-br/documentacao/plataforma/marketplace/) ou escreva a sua, como em [Primeiros passos com Functions](/pt-br/documentacao/plataforma/functions/primeiros-passos/).
- Um [personal token](/pt-br/documentacao/guias/plataforma/conta-e-billing/personal-tokens/), para o caminho pela API.

> **Atenção**
>
> Tempo de computação e invocações de funções geram custos relacionados ao uso. Para as taxas, consulte [Preços](/pt-br/documentacao/fundamentos/precos/).

---

## Crie a instância de função

Uma aplicação executa uma função por meio de uma instância, e uma mesma função pode sustentar várias instâncias. Cada caminho ativa o módulo **Functions** na aplicação e então cria a instância:

**Console**

Para criar a instância pelo Azion Console:

1. **Abra a aplicação**

   Acesse [Azion Console](https://console.azion.com/) > **Applications** > **sua aplicação**.

2. **Na aba Main Settings, ative o módulo Functions**

3. **Selecione Save**

4. **Vá para a aba Functions Instances**

5. **Selecione + Function Instance**

6. **Nomeie a instância**

   Digite um nome para a instância. Por exemplo: `hello-world instance`.

7. **Selecione a função**

   Selecione a função que a instância executa. Por exemplo, a função pré-configurada *Azion - Hello World*.

8. **Digite os Args**

   (Opcional) Na aba **Args**, digite os argumentos da instância em JSON.

9. **Selecione Save**

A instância aparece na aba **Functions Instances**. Ela não é executada até que uma regra do Rules Engine a selecione.

**API**

Para criar a instância pela Azion API:

1. **Ative o módulo Functions**

   Envie uma requisição `PATCH` para a aplicação, substituindo `[TOKEN VALUE]` pelo seu [personal token](/pt-br/documentacao/guias/plataforma/conta-e-billing/personal-tokens/) e `<application_id>` pelo [ID da sua aplicação](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/primeiros-passos/definir-configuracoes-principais/):

   ```bash
   curl --request PATCH \
     --url https://api.azion.com/v4/workspace/applications/<application_id> \
     --header 'Accept: application/json' \
     --header 'Authorization: Token [TOKEN VALUE]' \
     --header 'Content-Type: application/json' \
     --data '{
     "modules": {
       "functions": {
         "enabled": true
       }
     }
   }'
   ```

   A resposta retorna o valor atualizado.

2. **Leia o ID da função**

   Envie uma requisição `GET` para o endpoint de functions:

   ```bash
   curl --request GET \
     --url https://api.azion.com/v4/workspace/functions \
     --header 'Accept: application/json' \
     --header 'Authorization: Token [TOKEN VALUE]'
   ```

   A resposta lista as funções da conta. Copie o `id` da função que você quer instanciar:

   ```json
   {
     "count": 1,
     "results": [
       {
         "id": <function_id>,
         "name": "My Function",
         "last_editor": "your-email@example.com",
         "last_modified": "2025-08-14T16:37:54.966088Z",
         "product_version": "2.0",
         "active": true,
         "runtime": "azion_js",
         "execution_environment": "application",
         "code": "",
         "default_args": {},
         "reference_count": 0,
         "version": "-",
         "vendor": null
       }
     ]
   }
   ```

3. **Crie a instância**

   Envie uma requisição `POST` para o recurso functions da aplicação, substituindo `<function_id>` pelo ID que você copiou:

   ```bash
   curl --request POST \
     --url https://api.azion.com/v4/workspace/applications/<application_id>/functions \
     --header 'Accept: application/json' \
     --header 'Authorization: Token [TOKEN VALUE]' \
     --header 'Content-Type: application/json' \
     --data '{
     "name": "My instance Name",
     "function": <function_id>,
     "args": {},
     "active": true
   }'
   ```

   A resposta retorna a instância que a aplicação agora carrega:

   ```json
   {
     "state": "pending",
     "data": {
       "id": <function_instance_id>,
       "name": "My Function Instance",
       "args": {},
       "function": 123456,
       "active": true,
       "last_editor": "your-email@example.com",
       "last_modified": "2025-08-14T16:41:56.699896Z"
     }
   }
   ```

A instância existe na aplicação, e a resposta carrega os campos dela:

| Chave      | Descrição                                                                                            |
| ---------- | ---------------------------------------------------------------------------------------------------- |
| `id`       | O ID da instância de função                                                                          |
| `name`     | O nome da instância de função                                                                        |
| `function` | O ID da função que a instância executa. Ele difere de `id`, que é único para cada instância          |
| `args`     | Os argumentos passados para o contexto de execução da função. Algumas funções não recebem argumentos |

O valor `"state": "pending"` indica que a alteração leva alguns minutos para propagar antes de entrar em vigor. A instância não é executada até que uma regra do Rules Engine a selecione.

> **dica**
>
> Para cada endpoint e seus campos, consulte a [documentação da Azion API](https://api.azion.com/) e a [especificação OpenAPI](https://github.com/aziontech/azionapi-openapi/).

---

## Args da instância

Args são os argumentos que uma instância passa para o contexto de execução da função, escritos como um objeto JSON. O código da função não pode ser alterado na instanciação, então os Args são o que faz uma mesma função se comportar de forma diferente em cada aplicação que a instancia. Um objeto Args que define uma chave:

```json
{
  "value": "hello_world"
}
```

O código lê a chave em tempo de execução e a instância decide o valor dela. Uma função pode definir Args padrão próprios, e os Args de uma instância substituem as chaves que repetem. O objeto Args comporta no máximo 100 KB, e um objeto acima desse teto faz a função falhar na instanciação. Valores sensíveis como chaves de API, credenciais e tokens de acesso pertencem às [variáveis de ambiente](/pt-br/documentacao/plataforma/functions/environment-variables/).

Para os valores padrão e as regras de substituição, consulte [Como Functions funciona](/pt-br/documentacao/plataforma/functions/como-funciona/). Para cada campo do objeto de instância, consulte [Instâncias de função](/pt-br/documentacao/plataforma/applications/functions-instances/).

---

## Próximos passos

- [Execute uma função em uma aplicação](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/functions-e-runtime/funcoes-serverless.md): Adicione a regra do Rules Engine que executa a instância, em Azion Console ou na Azion API.
- [Crie uma regra de aplicação](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/primeiros-passos/trabalhar-com-rules-engine.md): A regra que seleciona a instância, pelo Azion Console ou pela Azion API.
- [Instâncias de função](/pt-br/documentacao/plataforma/applications/functions-instances.md): Todos os campos do objeto de instância, o teto dos Args e o comportamento Run Function.
- [Utilizar args](/pt-br/documentacao/plataforma/functions/utilizar-args.md): Uma função que lê uma chave dos seus Args e responde com o valor.
