Execute uma função em um firewall
Crie uma função que é executada em um firewall, instancie-a e adicione a regra do Rules Engine que a aciona.
Você pode criar uma função, instanciá-la em um firewall e acioná-la com uma regra do Rules Engine. Todos os passos são executados em Azion Console. Para instanciar uma função em um firewall pela Azion API, consulte Instancie uma função em um firewall. Para executar uma função em uma aplicação, consulte Execute uma função em uma aplicação.
Pré-requisitos
- Uma conta Azion. Para criar uma, consulte Como criar uma conta na Azion.
- A permissão Edit Functions na conta. Ela concede permissão para criar, editar e remover funções, e também requer a permissão View Functions.
- A permissão Edit Firewall na conta. Ela concede permissão para visualizar, criar, editar e remover um firewall, e também requer a permissão View Firewall. Consulte Teams Permissions.
Crie a função
Uma função é executada em um firewall quando ela exporta um handler firewall. Para criar a função:
Acesse Azion Console > Products Menu > Libraries > Functions.
Digite um nome para a função. Por exemplo: deny-request.
Na aba Code, cole o código a seguir:
A função é salva e fica disponível para ser instanciada em um firewall.
O handler firewall define o desfecho da requisição. ctx.deny() encerra a requisição com uma resposta HTTP 403 Forbidden. Quando o handler não chama ctx.deny(), a requisição segue para o handler fetch. Para os outros desfechos que uma função de firewall retorna, consulte Functions no Firewall.
Crie o firewall
Um firewall executa uma função apenas com o módulo Functions ativado. Para criar o firewall:
Em Azion Console, vá para Products Menu > Firewall.
Digite um nome para o firewall. Por exemplo: deny-request firewall.
No campo Domains, selecione os domínios a associar ao firewall.
O firewall é salvo, e as abas Functions Instances e Rules Engine ficam disponíveis na mesma página.
Instancie a função no firewall
Uma instância de função vincula a função a um firewall. Para criar a instância:
No firewall que você criou, vá para a aba Functions Instances.
Digite um nome para a instância. Por exemplo: deny-request instance.
Selecione a função deny-request. Apenas as funções com Initiator Type definido como Firewall aparecem na lista.
A instância aparece na aba Functions Instances. Ela não é executada até que uma regra do Rules Engine a selecione.
Adicione a regra que executa a função
Uma regra do Rules Engine define os critérios que acionam a instância. Para executar a instância em requisições cuja URI começa com /admin:
No mesmo firewall, vá para a aba Rules Engine.
Digite um nome para a regra. Por exemplo: Run deny-request.
Na seção Criteria, selecione a variável Request URI.
Digite /admin como argumento.
A regra executa a instância em toda requisição cuja URI começa com /admin, e a função responde a essas requisições com uma resposta HTTP 403 Forbidden. As mudanças podem levar alguns minutos para propagar. Aguarde antes de enviar uma requisição que corresponde aos critérios.