---
name: azion-execute-bot-manager-em-modo-de-observacao
description: >-
  Crie uma instância do Bot Manager Lite com action allow, para que toda requisição seja pontuada e nenhuma recusada, pelo Console, pela CLI ou pela API.
---

# Execute Bot Manager em modo de observação

Você pode criar uma instância do [Bot Manager Lite](/pt-br/documentacao/plataforma/firewall/bot-manager/bot-manager-lite/) que pontua toda requisição e não recusa nenhuma pelo Azion Console, pela Azion CLI ou pela API. Recorra a ela na primeira vez que colocar Bot Manager na frente de tráfego real, enquanto ainda precisa descobrir o que o seu próprio tráfego pontua.

---

## Pré-requisitos

- Um [firewall](/pt-br/documentacao/plataforma/firewall/) vinculado ao workload que atende a sua aplicação, com Bot Manager Lite instalado. Consulte [Primeiros passos com Bot Manager](/pt-br/documentacao/plataforma/firewall/bot-manager/primeiros-passos/).
- A [Azion CLI](/pt-br/documentacao/devtools/cli/) instalada e um personal token configurado, para o procedimento da CLI.
- Um personal token, para o procedimento da API. Para criar um, consulte [Personal Tokens](/pt-br/documentacao/fundamentos/personal-tokens/).

---

## Crie a instância

A instância recebe um único objeto JSON de argumentos. `threshold` é a pontuação na qual `action` dispara, e `30` é o valor que Bot Manager Lite traz. Com `action` em `allow`, nada é aplicado nesse valor, então uma requisição que cruza o threshold é pontuada, registrada e entregue como qualquer outra. Em `2`, `internal_logs` grava uma linha de report por requisição, inclusive por uma requisição que pontua `0`. `log_tag` nomeia esta instância nessas linhas, então substitua `storefront-bots` por uma tag sua.

```json
{
  "threshold": 30,
  "action": "allow",
  "internal_logs": 2,
  "log_tag": "storefront-bots"
}
```

Para todos os argumentos que uma instância aceita, consulte [Argumentos](/pt-br/documentacao/plataforma/firewall/bot-manager/argumentos/#campos).

**Console**

Para criar a instância pelo Azion Console:

1. **Abra o firewall vinculado ao seu workload**

   Acesse [Azion Console](https://console.azion.com/) > **Firewalls** e selecione esse firewall.

2. **Selecione a aba Functions Instances**

3. **Selecione + Function**

   O botão aparece como **+ Function Instance** enquanto o firewall ainda não tem nenhuma instância.

4. **Nomeie a instância**

   Na seção **General**, informe um **Name**, como `bot-manager-observation`.

5. **Selecione a função Bot Manager Lite**

   A seção **Function** oferece a função instalada. Apenas funções que rodam em um firewall aparecem no seletor.

6. **Informe o objeto na seção Arguments**

   Cole o objeto no editor JSON. A seção renderiza um editor porque Bot Manager Lite não traz um schema de argumentos a partir do qual montar um formulário.

7. **Selecione Save**

A instância aparece na lista **Functions Instances**, que mostra **Name**, **Function**, **Last Editor** e **Last Modified**. A lista não mostra nenhum argumento, então o objeto que você informou só fica visível ao abrir a instância de novo.

**CLI**

Para criar a instância com a Azion CLI, salve o objeto como `bmargs.json`:

```json
{
  "threshold": 30,
  "action": "allow",
  "internal_logs": 2,
  "log_tag": "storefront-bots"
}
```

A flag `--args` de `azion create firewall-instance` recebe o caminho desse arquivo, e não JSON inline:

```bash
azion create firewall-instance --name bot-manager-observation --firewall-id <firewall-id> \
  --function-id <function-id> --args bmargs.json --active true
```

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

A Azion CLI confirma a instância com o id que ela recebeu. Anote esse id: uma [regra do Rules Engine](/pt-br/documentacao/guias/seguranca-de-aplicacoes/bots-e-rede/executar-em-toda-requisicao/) nomeia a instância por ele, nunca pelo id da função.

**API**

Envie uma requisição `POST` à coleção `functions` do seu firewall, com o nome, o id da função instalada e os argumentos em um único corpo. Substitua `<firewall-id>` pelo id do seu firewall, `[TOKEN VALUE]` pelo seu personal token e `12345` pelo id da função Bot Manager Lite instalada:

```bash
curl --request POST \
  --url https://api.azion.com/v4/workspace/firewalls/<firewall-id>/functions \
  --header 'Accept: application/json' \
  --header 'Authorization: Token [TOKEN VALUE]' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "bot-manager-observation",
  "function": 12345,
  "active": true,
  "args": {
    "threshold": 30,
    "action": "allow",
    "internal_logs": 2,
    "log_tag": "storefront-bots"
  }
}'
```

A chamada responde `202`. O corpo abre com `"state": "pending"`, que indica que a alteração ainda está se propagando. Em `data`, ele traz a instância como a plataforma a armazenou: o `id` atribuído, os `args` devolvidos sem alteração e `"azion_form": {}`. Esse formulário vazio é o motivo pelo qual Azion Console renderiza um editor JSON para esta função em vez de um formulário. Anote o `id`.

> **nota**
>
> O objeto não é validado. Azion armazena toda chave que você envia e a devolve como foi digitada, inclusive uma chave que a função nunca lê. Um `thresold` escrito errado deixa o threshold em `30`, e nenhuma interface reporta isso. Reserve cerca de dois minutos depois de qualquer alteração antes de tirar qualquer conclusão de uma resposta. Mantenha o threshold fixo durante toda a janela: `classified` é relativo ao threshold em vigor, então uma alteração reclassifica o tráfego que você está observando. Para saber como o threshold o define, consulte [Score de bots](/pt-br/documentacao/plataforma/firewall/bot-manager/score-de-bots/).

---

## Próximos passos

- [Execute Bot Manager em toda requisição](/pt-br/documentacao/guias/seguranca-de-aplicacoes/bots-e-rede/executar-em-toda-requisicao.md): A regra que entrega toda requisição que o firewall recebe a esta instância.
- [Boas práticas de Firewall](/pt-br/documentacao/plataforma/firewall/boas-praticas.md#bot-manager): Por quanto tempo manter uma janela de observação e o que ler dela antes de aumentar a ação.
