Nega ou permite uma requisição com base no país do visitante, resolvido a partir de dados de GeoIP na rede global da Azion. Use esse padrão em uma função de firewall para impor restrições geográficas, bloqueando o tráfego de regiões específicas antes que ele chegue à sua aplicação. O código se baseia no código do país, acessado através de event.request.metadata["geoip_country_code"], e a requisição é negada ou não por event.deny().

async function firewallHandler(event){
// Access the country code through geoip
let countryCode = event.request.metadata["geoip_country_code"]
// Do some logic here
// In this example, we are blocking access from Brazil
if (countryCode === "BR"){
event.deny();
}
// Then, if it comes from any other country,
// the processing continues
event.continue();
}
addEventListener("firewall", (event)=>event.waitUntil(firewallHandler(event)));

Como funciona

A função escuta o evento firewall e executa seu handler assíncrono dentro de event.waitUntil(). Ela lê o país do visitante em event.request.metadata["geoip_country_code"] e, quando a requisição vem do Brasil, chama event.deny(), que retorna uma resposta 403 padrão e interrompe o processamento. Para requisições de qualquer outro país, event.continue() permite que a requisição prossiga normalmente até seu destino.

Recursos relacionados