Como instalar a solution Process Request Data Into Headers através do Marketplace da Azion
Visão geral
A solution Process Request Data Into Headers é uma solution 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.
1. Obtendo a solution
Para instalar a solution, siga estes passos:
- Entre na sua conta do Real-Time Manager (RTM).
- Se você não tiver uma, você pode criar sua conta aqui.
- No canto superior esquerdo da página, selecione Products menu > Marketplace.
- Selecione a caixa de busca e digite “request” ou navegue pelos cards para encontrar a solution Process Request Data Into Header.
- Uma vez encontrado o card da solution, selecione-o para ser redirecionado para a página da solution.
- Na página da solution, procure a seção Subscribe for no canto inferior direito.
- Clique no botão Get It Now.
Após clicar no botão Get it now, você verá uma mensagem indicando que sua solution foi instalada com sucesso e está pronta para ser usada.
2. Usando a solution
2.1 Criando uma regra do Edge Firewall
Para instanciar a solution Process Request Data Into Header, siga os passos:
- No RTM, em Products menu, selecione Edge Firewall na seção SECURE.
- Clique no botão Add Rule Set.
- Dê um nome fácil de lembrar para sua nova regra.
- 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 uma regra para sua função.
2.2 Configurando a solution
Para terminar de instanciar a solution, ainda na página Edge Firewall, selecione a guia Functions e siga estes passos:
- 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" |
Importante: desde que a request tenha um
Content-Type
válido juntamente de umarequest body
válida, a solution converte em os campos presentes embody
paraheaders
. Esta solution suporta dados de objetos aninhados. Neste caso, cada “nível” será separado por um hífen.
Alguns erros possíveis
Esta solution 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. |
3. Configurando o Rules Engine
Para terminar o processo, é preciso configurar o Rules Engine indicando o behavior e o criteria necessários para executar a solution.
Ainda na página do Edge Firewall, selecione a guia 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 solution 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 solution está sendo executada para cada solicitação feita ao domínio que você indicou.
Não encontrou o que procurava? Abra um ticket.