Functions em um firewall
Negue, descarte, modifique ou responda a uma requisição em um único handler de firewall, com as ações de evento disponíveis para uma função.
Exemplo de uso geral para funções executadas no firewall, combinando várias ações de tratamento de requisição em um único handler. Use-o como ponto de partida quando precisar inspecionar headers e metadados de entrada e então decidir se vai bloquear, descartar, modificar ou responder a uma requisição diretamente na rede global da Azion. O código de exemplo demonstra as seguintes capacidades:
event.deny()event.drop()event.addRequestHeader()event.addResponseHeader()event.respondWith()event.continue()
Como funciona
Este código é executado como um handler de firewall, ou seja, dentro de um firewall e não no caminho da requisição da aplicação. Ele registra o handler com addEventListener("firewall", ...) e executa o trabalho assíncrono dentro de event.waitUntil(). Consulte Functions no Firewall para conhecer o conjunto completo de ações que um handler de firewall pode chamar.
O handler lê vários headers da requisição com event.request.headers.get() para orientar suas decisões. Dependendo de qual header está presente, ele pode chamar event.deny() para retornar um 403, event.drop() para encerrar a conexão sem resposta, ou event.addRequestHeader() e event.addResponseHeader() para injetar headers personalizados. Ele também inspeciona event.request.metadata["remote_addr"] e pode interromper o fluxo com event.respondWith(new Response(...)) para servir um corpo JSON próprio. Ele termina com event.continue(), de modo que qualquer requisição ainda não tratada prossiga normalmente.