---
name: azion-execute-uma-funcao-em-uma-aplicacao
description: >-
  Adicione a regra do Rules Engine que executa uma instância de função em uma aplicação pelo Azion Console ou pela Azion API e verifique a resposta.
---

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

Uma instância de função é executada apenas quando uma regra do [Rules Engine](/pt-br/documentacao/plataforma/applications/rules-engine/) a seleciona com o comportamento **Run Function**. Você adiciona essa regra pelo Azion Console ou pela Azion API. Para uma primeira execução guiada que cria a função, a instância e a regra em uma só passagem, consulte [Primeiros passos com Functions](/pt-br/documentacao/plataforma/functions/primeiros-passos/).

---

## Pré-requisitos

- Uma função na conta. Para escrever uma, consulte [Escreva e teste uma função](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/functions-e-runtime/primeiros-passos/).
- Uma instância de função na aplicação. Para criar uma, consulte [Instancie uma função em uma aplicação](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/primeiros-passos/instanciar-functions/).
- O módulo **Application Accelerator** ativado na aplicação. O comportamento **Run Function** depende dele. Consulte [Application Accelerator](/pt-br/documentacao/plataforma/applications/#application-accelerator).
- A permissão **Edit Applications** na conta. A regra altera uma aplicação. Consulte [Teams Permissions](/pt-br/documentacao/fundamentos/teams-permissions/).
- Um [personal token](/pt-br/documentacao/guias/plataforma/conta-e-billing/personal-tokens/), para o caminho pela API.

> **dica**
>
> Uma função pré-configurada do [Azion Marketplace](/pt-br/documentacao/plataforma/marketplace/) substitui uma função que você escreve. A função **Azion - Hello World** está vinculada à sua conta e pronta para ser instanciada.

---

## Adicione a regra que executa a função

A regra define a fase de execução, os critérios que a acionam e a instância que ela executa. A regra então executa essa instância em toda requisição que corresponde aos critérios. Azion Console e Azion API criam a mesma regra.

### Adicione a regra pelo Azion Console

Para adicionar a regra pelo Azion Console:

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

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

2. **Na aba Rules Engine, selecione + Rule**

3. **Nomeie a regra**

   Digite um nome para a regra. Por exemplo: `Run hello-world`.

4. **Selecione Request Phase**

5. **Na seção Criteria, selecione a variável de URI**

   Selecione a variável `${uri}`.

6. **Selecione is equal como operador de comparação**

7. **Digite a URI que executa a função**

   Digite a URI como argumento. Por exemplo: `/hello-world`.

8. **Na seção Behaviors, selecione Run Function**

9. **Selecione a instância de função**

10. **Selecione Save**

A regra aparece na aba **Rules Engine** da aplicação. Novas regras podem levar alguns minutos para propagar.

> **nota**
>
> Se **Run Function** não estiver na lista de **Behaviors**, a aplicação também precisa do módulo **Application Accelerator**. Consulte [Run Function não aparece na lista de comportamentos](/pt-br/documentacao/plataforma/functions/solucao-de-problemas/#run-function-nao-aparece-na-lista-de-comportamentos) para a correção.

### Adicione a regra pela Azion API

Envie uma requisição `POST` para o endpoint de request rules da aplicação. Substitua `[TOKEN VALUE]` pelo seu [personal token](/pt-br/documentacao/guias/plataforma/conta-e-billing/personal-tokens/), `<application_id>` pelo [ID da sua aplicação](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/primeiros-passos/definir-configuracoes-principais/) e `<edge_function_instance_id>` pelo ID da instância de função:

```bash
curl --request POST \
  --url https://api.azion.com/v4/workspace/applications/<application_id>/request_rules \
  --header 'Accept: application/json' \
  --header 'Authorization: Token [TOKEN VALUE]' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "Run Hello World",
  "active": true,
  "criteria": [
    [
      {
        "conditional": "if",
        "variable": "${uri}",
        "operator": "is_equal",
        "argument": "/hello-world"
      }
    ]
  ],
  "behaviors": [
    {
      "type": "run_function",
      "attributes": { "value": <edge_function_instance_id> }
    }
  ],
  "description": "Run function on /hello-world"
}'
```

A resposta retorna a regra que a aplicação agora carrega:

```json
{
  "state": "pending",
  "data": {
    "id": <rule_id>,
    "name": "Run Hello World",
    "active": true,
    "criteria": [
      [
        {
          "conditional": "if",
          "variable": "${uri}",
          "operator": "is_equal",
          "argument": "/hello-world"
        }
      ]
    ],
    "behaviors": [
      {
        "type": "run_function",
        "attributes": {
          "value": <edge_function_instance_id>
        }
      }
    ],
    "description": "Run function on /hello-world",
    "order": 0,
    "last_editor": "your-email@example.com",
    "last_modified": "2026-01-01T12:00:00.000000Z"
  }
}
```

O valor `"state": "pending"` significa que a regra leva alguns minutos para propagar. Para todos os campos do endpoint de rules, consulte [Crie uma regra de aplicação](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/primeiros-passos/trabalhar-com-rules-engine/).

---

## Verifique a resposta

Sua aplicação responde em um domínio no formato `xxxxxxxxx.map.azionedge.net`. Para definir o domínio da sua aplicação, consulte [Adicione um domínio a um workload](/pt-br/documentacao/guias/plataforma/migracao/configurar-dominio/).

Aguarde a propagação da regra e requisite a URI definida nos critérios:

```bash
curl https://<your-azion-domain>/hello-world
```

O corpo da resposta é a string que a função retorna. A função `hello-world` de [Primeiros passos com Functions](/pt-br/documentacao/plataforma/functions/primeiros-passos/) responde:

```
Hello World!
```

Uma resposta que não vem da função significa que a regra não correspondeu à requisição ou que a alteração ainda não propagou.

---

## Próximos passos

- [Primeiros passos com Functions](/pt-br/documentacao/plataforma/functions/primeiros-passos.md): O caminho completo, de uma conta vazia até uma função que responde a uma requisição.
- [Instancie uma função em uma aplicação](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/primeiros-passos/instanciar-functions.md): Crie a instância que esta regra seleciona e passe seus Args em JSON.
- [Crie uma regra de aplicação](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/primeiros-passos/trabalhar-com-rules-engine.md): Os critérios e comportamentos que uma regra carrega, além de Run Function.
- [Solução de problemas de execução e logs de funções](/pt-br/documentacao/plataforma/functions/solucao-de-problemas.md): O que verificar quando uma função não roda ou retorna um erro.
