Como instanciar edge functions em seu edge firewall
Instancie funções serverless diretamente no seu edge firewall.
Este guia utiliza a função configurada Recusando uma requisição baseando-se em Geoip. Você pode repetir este processo usando qualquer função já disponível no Marketplace da Azion ou desenvolver outras funções.
Este guia também presume que você possui uma network list do tipo Countries.
- Acesse o Azion Console > Edge Firewall.
- Clique no edge firewall que você deseja configurar.
- Na aba Main Settings, ative o switch do módulo Edge Functions para habilitar as funções.
- Clique no botão Save.
- Vá para a aba Functions Instances.
- Clique em + Function Instance.
- Nomeie sua instância de função. Por exemplo:
Função de Recusar Geoip
. - No menu suspenso Edge Functions, selecione a função que deseja usar. Neste exemplo,
Função de Recusar Geoip
.
- Se desejar, pode editar os Arguments.
- Clique no botão Save.
A página de funções agora lista a instância recém-criada. No entanto, esta nova função ainda não está ativa em sua. Você precisa definir o que acionará a função.
Ainda na página do Edge Firewall:
- Navegue até a aba Rules Engine.
- Clique no botão + Rule.
- Dê um nome para o seu conjunto de regras.
- Na seção Criteria, selecione a variável
Network
. - Como operador de comparação, selecione matches.
- Como argumento, selecione a network list do tipo Countries que deseja usar. Por exemplo:
Países Bloqueados Geoip
. - Na seção Behaviors, selecione Run Function na lista de comportamentos.
- Selecione a função que deseja usar. Neste exemplo,
Função de Recusar Geoip
. - Clique no botão Save.
Quando sua aplicação receber uma requisição gerada de um dos países na lista de rede, a função em seu firewall recusará a requisição com base no Geo IP.
- Acesse o Real-Time Manager (RTM) > Edge Firewall.
- Clique no edge firewall que você deseja configurar.
- Na aba Main Settings, ative o switch do módulo Edge Functions para habilitar as funções.
- Clique no botão Save.
- Vá para a aba Functions.
- Clique em Add Function.
- Nomeie sua instância de função. Por exemplo:
Função de Recusar Geoip
. - No menu suspenso Edge Functions, selecione a função que deseja usar. Neste exemplo,
Função de Recusar Geoip
.
- Você não pode alterar o Code, mas se desejar, pode editar os Arguments.
- Clique no botão Save.
A página de funções agora lista a instância recém-criada. No entanto, esta nova função ainda não está ativa em sua. Você precisa definir o que acionará a função.
Ainda na página do Edge Firewall:
- Navegue até a aba Rules Engine.
- Clique no botão New Rule.
- Dê um nome para o seu conjunto de regras.
- Na seção Criteria, selecione a variável
Network
. - Como operador de comparação, selecione matches.
- Como argumento, selecione a network list do tipo Countries que deseja usar. Por exemplo:
Países Bloqueados Geoip
. - Na seção Behaviors, selecione Run Function na lista de comportamentos.
- Selecione a função que deseja usar. Neste exemplo,
Função de Recusar Geoip
. - Clique no botão Save.
Quando sua aplicação receber uma requisição gerada de um dos países na lista de rede, a função em seu firewall recusará a requisição com base no Geo IP.
- Execute a seguinte requisição
PATCH
no seu terminal, substituindo[VALOR DO TOKEN]
pelo seu token pessoal e a variável<edge_firewall_id>
pelo ID do seu edge firewall para ativar o módulo Edge Functions:
- Você receberá uma resposta com o valor atualizado.
- Execute a seguinte requisição
GET
para obter oedge_function_id
da funçãoRecusar Geoip
:
- Você receberá uma resposta semelhante a esta:
- Copie o valor
<edge_function_id>
. - Execute a seguinte requisição
POST
, substituindo a variável<edge_firewall_id
pelo ID do seu edge firewall e o valor<edge_function_id>
pelo valor que você recebeu na resposta anterior:
- Você receberá uma resposta semelhante a esta:
Chave | Descrição |
---|---|
name | Nome da função instanciada |
edge_function | O ID da edge function. Este não é o mesmo que o ID da função instanciada, que é único para cada instância de função |
json_args | Definição de argumentos necessários para a função. Algumas funções não aceitam argumentos |
- Execute a seguinte requisição
GET
para obter oid
da network listBlocked Countries Geoip
:
- Você receberá uma resposta semelhante a esta:
Chave | Descrição |
---|---|
name | Nome da lista de rede |
id | ID da lista de rede |
list_type | Definição do tipo da lista de rede |
country_list | Itens que compõem a lista |
- Execute a seguinte requisição
POST
no seu terminal, substituindo[VALOR DO TOKEN]
pelo seu personal token, a variável<edge_firewall_id>
pelo ID do seu edge firewall, o valor<edge_function_instance_id>
pelo ID da instância da função e o valor<network_list_id>
pelo ID da network list:
- Você receberá uma resposta semelhante a esta, confirmando que sua função foi criada com sucesso:
- Aguarde alguns minutos para que as alterações se propaguem.
Quando sua aplicação receber uma requisição gerada de um dos países na network list, a função em seu firewall recusará a requisição com base no Geo IP.