---
name: azion-recuse-requisicoes-acima-do-threshold
description: >-
  Defina action como deny em uma instância do Bot Manager Lite, pelo Azion Console, pela Azion CLI ou pela API, e leia o que uma requisição recusada recebe.
---

# Recuse requisições acima do threshold

Você pode definir uma instância do [Bot Manager Lite](/pt-br/documentacao/plataforma/firewall/bot-manager/bot-manager-lite/) para recusar uma requisição cuja pontuação atinge o threshold, pelo Azion Console, pela Azion CLI ou pela API. Uma requisição recusada recebe `HTTP 403` com a página intitulada `Azion - Default error page`, e nada nessa resposta nomeia Bot Manager.

---

## 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/).
- As pontuações que o seu próprio tráfego produz, lidas em uma janela de observação. Para rodar uma, consulte [Execute Bot Manager em modo de observação](/pt-br/documentacao/guias/seguranca-de-aplicacoes/bots-e-rede/modo-de-observacao/).
- 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/).

---

## Defina a action como deny

O objeto abaixo está a um valor de distância do objeto de observação: `action` lê `deny`, então a instância responde `403` a uma requisição cuja pontuação atinge `threshold`, em vez de entregá-la. Em `30`, o threshold que Bot Manager Lite traz, um navegador não é recusado. Uma requisição do Chrome com `Accept`, `Accept-Language`, `Accept-Encoding`, quatro headers `Sec-Fetch-*` e `Upgrade-Insecure-Requests` chega à aplicação com este objeto. `internal_logs` em `2` mantém uma linha de report para toda requisição, então uma recusa deixa atrás de si um registro da pontuação.

```json
{
  "threshold": 30,
  "action": "deny",
  "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 definir a action 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. **Abra a instância que você quer alterar**

   Em um firewall que ainda não tem nenhuma instância, selecione **+ Function**, informe um **Name** e selecione a função Bot Manager Lite na seção **Function**.

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

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

5. **Selecione Save**

A instância guarda o novo objeto. Uma instância já nomeada por uma regra mantém essa regra: os argumentos mudam sob ela, e nenhuma regra precisa ser tocada.

**CLI**

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

```json
{
  "threshold": 30,
  "action": "deny",
  "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-lite --firewall-id <firewall-id> \
  --function-id <function-id> --args bmargs.json --active true
```

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

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. 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-lite",
  "function": 12345,
  "active": true,
  "args": {
    "threshold": 30,
    "action": "deny",
    "internal_logs": 2,
    "log_tag": "storefront-bots"
  }
}'
```

A chamada responde `202` e retorna a instância como a plataforma a armazenou:

```json
{
  "state": "pending",
  "data": {
    "id": 12348,
    "name": "bot-manager-lite",
    "args": {
      "threshold": 30,
      "action": "deny",
      "internal_logs": 2,
      "log_tag": "storefront-bots"
    },
    "azion_form": {},
    "function": 12345,
    "active": true
  }
}
```

`"state": "pending"` diz que a escrita foi aceita e ainda não chegou à infraestrutura distribuída da Azion. `"azion_form": {}` é o motivo pelo qual Azion Console renderiza um editor JSON para esta função em vez de um formulário.

> **nota**
>
> Reserve cerca de dois minutos depois de qualquer alteração antes de tirar qualquer conclusão de uma resposta. O objeto não é validado: uma instância cujo `action` está escrito errado parece configurada para recusar e não recusa nada. Um `threshold` de `0` recusa toda requisição que a regra corresponde. Um cliente que não roda JavaScript nem guarda cookies nunca chega a um `403`, e também nunca chega à aplicação. Para ver o que esse cliente recebe, consulte [Solucionar problemas de Firewall](/pt-br/documentacao/plataforma/firewall/solucao-de-problemas/#bot-manager).

---

## Próximos passos

- [Leia o report log de uma instância](/pt-br/documentacao/guias/seguranca-de-aplicacoes/bots-e-rede/ler-o-report-log.md): Confirme qual instância recusou uma requisição e quanto ela pontuou.
- [Argumentos](/pt-br/documentacao/plataforma/firewall/bot-manager/argumentos.md): Todos os argumentos que uma instância aceita, e o que cada ação faz no threshold.
