# Como criar e configurar uma function em seu Firewall

**Functions** são funções executadas no edge da rede, mais perto do usuário. Elas auxiliam na segurança de suas aplicações através do **Firewall**.

Para usar functions no seu Firewall, você deve seguir dois passos: 

- Criar uma function.
- Configurar os *behaviors* na página do Firewall.

---

## Crie uma function

1. Acesse o [Azion Console](/pt-br/documentacao/produtos/guias/como-acessar-o-azion-console/) > **Functions**.
2. Clique em **+ Function**.
3. Escolha um nome para a função.
4. Na aba **Code**, escreva sua função, ou simplesmente copie e cole o exemplo a seguir: 
    - A function a ser usada no firewall deve conter um *evento finalizador*, como apresentado a seguir.

```js
    addEventListener("firewall", (event) => {
        event.deny();
    });
```

5. Salve a função.

Agora, sua function pode ser usada em configurações do firewall.

---

## Configure uma function no Firewall

Depois de criar uma function, você precisa configurar o firewall para implementá-la.

### Crie um firewall

1. Acesse o [Azion Console](/pt-br/documentacao/produtos/guias/como-acessar-o-azion-console/) > **Firewall**.
2. Clique em **+ Firewall**.
3. Escolha um nome para o firewall.
4. Escolha os domínios aos quais você deseja implementar as regras.
5. Habilite o uso do módulo **Functions**.
6. Ative o firewall e clique em **Save**.

Após salvar a configuração, na mesma página, as abas **Functions** e **Rules Engine** ficam acessiveis.

### Adicione uma function ao firewall

1. Vá para a aba **Functions Instances**.
2. Clique em **+ Function Instance**.
3. Escreva um nome para sua instância.
4. Escolha a função desejada.
5. Clique no botao **Save**.
    - Apenas as funções com o *Initiator Type* definido como Firewall são listadas.
6. Acesse a aba **Rules Engine**.
7. Selecione **+ Rules Engine**.
8. Escreva o nome da nova regra.
9. Configure o critério que será aplicado.
10. Defina o *behavior* para **Run Function** e selecione a função que será executada.
11. Clique no botão **Save**.

:::note
As mudanças levam alguns instantes para serem propagadas.
:::

---