Edge Functions no Edge Firewall
Edge Functions são funções executadas na plataforma de Edge da Azion, com a latência baixa, levando a capacidade operacional para mais perto do usuário final.
Edge Firewall suporta edge functions. Através delas, você pode escrever seu próprio código de segurança em JavaScript e realizar deploy no edge.
Com edge functions nos Edge Firewall, você pode:
- Melhorar sua proteção.
- Ter mais dinamismo.
- Implementar a lógica necessária para o funcionamento do seu negócio.
- Fazer uso de APIs que possibilitam a manipulação dos headers de request e response.
Implementação
Seção intitulada ImplementacaoEscopo | Guia |
---|---|
Como criar e configurar uma edge function em seu Edge Firewall | Como criar e configurar uma edge function no seu Edge Firewall |
Exemplos | Exemplos de functions para firewall |
Exemplos no GitHub | Repositório do GitHub |
Como funcionam as edge functions no Edge Firewall
Seção intitulada Como funcionam as edge functions no Edge FirewallProcesso
Seção intitulada Processo- As regras configuradas nas Rules Engine do Edge Firewall para a execução da função são acionadas.
- O Azion Edge Runtime processa a função, retornando um resultado.
- O Edge Firewall Rules Engine prossegue com o processamento, baseado no resultado recebido, a partir do ponto que o comportamento foi acionado.
Adicionar Header da Requisição
Seção intitulada Adicionar Header da RequisicaoVocê pode adicionar headers na requisição que é enviada à origem.
Adicionar Header da Resposta
Seção intitulada Adicionar Header da RespostaVocê pode adicionar headers na resposta que é enviada aos usuários.
Deny (403 Forbidden)
Seção intitulada Deny (403 Forbidden)Através do evento event.deny()
, você pode finalizar uma requisição retornando HTTP 403 Forbidden.
Drop (Fechar Sem Resposta)
Seção intitulada Drop (Fechar Sem Resposta)Através do evento event.drop()
, você pode finalizar uma solicitação sem retornar uma resposta ao cliente.
Respond with
Seção intitulada Respond withAtravés do evento event.respondWith()
, você pode interceptar requisições e retornar respostas customizadas, além de modificar os headers da resposta ou o conteúdo.
Metadados
Seção intitulada MetadadosAs edge functions no Edge Firewall possibilitam a manipulação de metadados.
Utilizando esses metadados, você pode filtrar e gerenciar o acesso às suas aplicações e implementar a lógica específica em diferente cenários, como por exemplo:
Informação de GeoIP
Seção intitulada Informacao de GeoIPVocê pode negar acesso quando a requisição vem de lugares específicos.
Leia mais sobre a lista de metadados de GeoIP.
Remote
Seção intitulada RemoteVocê pode verificar o endereço de IP e a porta TCP utilizada.
Leia mais sobre a lista de metadados de Remote.
Server
Seção intitulada ServerVocê pode verificar o protocolo sendo usado na requisição.
Leia mais sobre a lista de metadados de Server.
Os metadados relacionados a TLS estarão disponíveis quando a requisição for feita de uma conexão segura.
Leia mais sobre a lista de metadados de TLS.
Repositório Azion Samples
Seção intitulada Repositorio Azion SamplesAcesse o repositório Azion Samples no GitHub e analise os code samples que podem ajudar no desenvolvimento de suas edge functions.
Práticas recomendadas
Seção intitulada Praticas recomendadasConditionals
Seção intitulada ConditionalsAo trabalhar com condicionais e event.method
, use if else
. Caso a implementação seja semelhante a:
Ela pode acabar com comportamentos inesperados.
É altamente recomendável utilizar da seguinte forma:
Sync x async
Seção intitulada Sync x asyncComo o eventHandler
é síncrono, é necessário escrever uma function assíncrona quando await
é implementado.
Recomenda-se usar event.waitUntil
. Caso contrário, a promise
pode acabar em exceções inesperadas.
Contribuidores