Como instalar a integração Process Request Data Into Headers através do Marketplace da Azion
Process Request Data Into Headers é uma integração serverless disponível no Marketplace da Azion.
O objetivo desta função é interromper uma requisição sempre que um request body field
estiver vazio. Usando regex, o usuário pode validar não apenas se o campo existe, mas também os padrões criados por ele. Além disso, os usuários têm a opção de utilizar qualquer comportamento que escolherem, sem ficarem presos a um Deny Request
pré-determinado.
Obtenha a integração
Para instalar a integração, siga estes passos:
- Acesse o Azion Console > Marketplace.
- Na homepage do Marketplace, selecione o card da integração.
- Quando a página da integração abrir, clique no botão Install, localizado no canto inferior da direita.
Aparecerá uma mensagem indicando que sua integração foi instalada com sucesso.
- Acesse o Real-Time Manager (RTM) > Marketplace.
- Na homepage do Marketplace, selecione o card da integração.
- Quando a página da integração abrir, clique no botão Get It Now, localizado no canto inferior da direita.
Aparecerá uma mensagem indicando que sua integração foi instalada com sucesso.
Configure a integração
Crie um edge firewall
Para instanciar a integração Process Request Data Into Header, siga os passos:
- No Products menu, selecione Edge Firewall na seção SECURE.
- Clique no botão + Edge Firewall.
- Dê um nome fácil de lembrar para seu edge firewall.
- Selecione os domínios que você deseja proteger com a função.
- Habilite o switch Edge Functions.
- Clique no botão Save.
Pronto. Agora você instanciou um edge firewall para sua função.
- No Products menu, selecione Edge Firewall na seção SECURE.
- Clique no botão Add Rule Set.
- Dê um nome fácil de lembrar para seu edge firewall.
- Selecione os domínios que você deseja proteger com a função.
- Habilite o switch Edge Functions.
- Clique no botão Save.
Pronto. Agora você instanciou um edge firewall para sua função.
Instancie a integração
Para terminar de instanciar a integração, ainda na página Edge Firewall:
- Selecione a aba Functions Instances.
- Clique no botão + Function Instance.
- Dê um nome fácil de lembrar para a sua instância.
- No menu suspenso, selecione a função Process Request Data Into Header.
- Esta função não precisa de nenhum parâmetro na aba Arguments, mas você pode testá-la utilizando o comando
curl
.
- Esta função não precisa de nenhum parâmetro na aba Arguments, mas você pode testá-la utilizando o comando
- Selecione a aba Functions.
- Clique no botão Add Function.
- Dê um nome fácil de lembrar para a sua instância.
- No menu suspenso, selecione a função Process Request Data Into Header.
Esta ação irá carregar a função, mostrando um formulário com o código-fonte dela e, logo acima dele, duas abas: Code e Args. Ao clicar na aba Code, você poderá navegar pelo código-fonte, mas não poderá alterá-lo. Além disso, esta função não precisa de nenhum parâmetro na aba Args, mas você pode testá-la utilizando o comando curl
.
Exemplos do comando curl
Comando Curl | Request headers adicionados pela function |
---|---|
curl https://mydomain/function | X-Body-Error": "CT001 |
curl -H "Content-Type: application /x-www-form-urlencoded" --request POST --data 'param1=v1¶m2=v2¶m3=v3' https://mydomain/function | X-Body-Param1": "v1" X-Body-Param2": "v2" X-Body-Param3": "v3" |
curl -H "Content-Type: application /json" --request POST --data '{"my_data": {"abc": {"def": {"g": "xyz","h": false,"e": null}}, "number": 1}}' https://mydomain/function | X-Body-My-Data-Abc-Def-G": "xyz" X-Body-My-Data-Abc-Def-H": "false" X-Body-My-Data-Number": "1" |
curl -H "Content-Type: text /plain" --request POST --data 'plain=text' https://mydomain /function | X-Body-Error": "CT002" |
curl -H "Content-Type: application /json" --request POST --data '{"my_data": {"abc": {"def": {"g": "xyz","h": false,"e": null}}, "number": 1}' https://mydomain/function | X-Body-Error": "FD001" |
Alguns erros possíveis
Esta integração pode provocar erros. Neste caso, os erros serão anexados a um novo cabeçalho chamado X-Body-Error
.
Código do erro | Descrição |
---|---|
CT001 | O cabeçalho Content-Type está faltando ou é nulo (null) |
CT002 | O cabeçalho Content-Type contém um valor não suportado pela function |
FD001 | O request body não está formatado corretamente e não pode ser decodificado |
Configure o Rules Engine
Para terminar o processo, é preciso configurar o Rules Engine indicando o behavior e o criteria necessários para executar a integração.
Ainda na página do Edge Firewall:
- Selecione a aba Rules Engine e siga estes passos:
- Clique no botão + Rule Engine.
- Dê um nome fácil de lembrar para sua regra.
- Selecione o criteria que deseja usar para executar a integração e o domínio no qual você deseja rodá-la.
- Abaixo, selecione um behavior para este criteria. Neste caso, será Run Function. Em seguida, selecione a função Process Request Data Into Header, de acordo com o nome que você deu no passo de instanciação.
- Clique no botão Save.
Pronto. Agora a integração está sendo executada para cada requisição feita ao domínio que você indicou.
- Selecione a aba Rules Engine e siga estes passos:
- Clique no botão New Rule.
- Dê um nome fácil de lembrar para sua regra.
- Selecione o criteria que deseja usar para executar a integração e o domínio no qual você deseja rodá-la.
- Abaixo, selecione um behavior para este criteria. Neste caso, será Run Function. Em seguida, selecione a função Process Request Data Into Header, de acordo com o nome que você deu no passo de instanciação.
- Clique no botão Save.
Pronto. Agora a integração está sendo executada para cada requisição feita ao domínio que você indicou.