API de metadados
Referência da API de metadados: os metadados da requisição que uma function lê, como localização GeoIP, endereço do cliente, TLS, fingerprints e IDs.
A API de metadados do Azion Runtime fornece a uma function um conjunto de valores sobre cada requisição: a localização GeoIP do cliente, o endereço e a porta dele, o protocolo, a sessão TLS, fingerprints e identificadores. Functions executadas em uma Application ou em um Firewall podem lê-la. Use-a para filtrar e gerenciar o acesso à sua aplicação ou para aplicar uma lógica diferente para cada cenário.
Acesso
Os metadados são um objeto na requisição. Com o handler export default { fetch }, leia-os em request.metadata:
Com addEventListener("fetch", ...) ou export default main, leia-os em event.request.metadata:
Todo valor é uma string ou null.
GeoIP
As chaves GeoIP localizam o cliente a partir do endereço IP dele.
| Chave | Descrição |
|---|---|
geoip_asn | Número do sistema autônomo. |
geoip_city | Código da cidade. |
geoip_city_continent_code | Código do continente da cidade. |
geoip_city_country_code | Código do país da cidade. |
geoip_city_country_name | Nome do país da cidade. |
geoip_continent_code | Código do continente, por exemplo SA. |
geoip_country_code | Código do país, por exemplo BR. |
geoip_country_name | Nome do país, por exemplo Brazil. |
geoip_region | Código da região. |
geoip_region_name | Nome da região. |
Remote
As chaves remote descrevem a conexão do cliente.
| Chave | Descrição |
|---|---|
remote_addr | Endereço IP do cliente. |
remote_port | Porta TCP do cliente. |
remote_user | Usuário informado na URL, por exemplo user em https://user@example.com/. null quando a URL não tem usuário. |
Server
A chave server informa o protocolo da requisição.
| Chave | Descrição |
|---|---|
server_protocol | Protocolo da requisição, por exemplo HTTP/2.0. |
TLS
As chaves TLS descrevem a sessão TLS da requisição.
| Chave | Descrição |
|---|---|
ssl_cipher | Cifra TLS da sessão, por exemplo TLS_AES_256_GCM_SHA384. |
ssl_protocol | Protocolo TLS da sessão, por exemplo TLSv1.3. |
Fingerprints
As chaves de fingerprint carregam fingerprints TLS e HTTP para análise de segurança.
| Chave | Descrição |
|---|---|
server_fingerprint | Fingerprint TLS do servidor. |
server_fingerprint_ja4h | Fingerprint JA4H do servidor. |
http_ssl_ja4 | Fingerprint TLS JA4 da requisição. |
client_fingerprint | Fingerprint do cliente, ou null. |
Identificadores
As chaves de identificador indicam a conta e os recursos que processam a requisição.
| Chave | Descrição |
|---|---|
solution_id | Identificador interno da solução (conjunto de produtos) que processa a requisição. |
client_id | Identificador da conta Azion proprietária do workload. |
function_id | Identificador da function executada para a requisição. |
configuration_id | Identificador do workload que recebeu a requisição. |
virtualhost_id | O identificador do workload seguido do client_id. |
connector_id | Identificador do connector, quando a requisição passa por um. Um traço (-) quando nenhum connector participa. |
request_id | ID único da requisição, o mesmo valor do header de resposta x-azion-request-id. Use-o para rastrear uma requisição de ponta a ponta. |
Exemplo
Esta function retorna o objeto de metadados completo da requisição em JSON:
Uma requisição à function com deploy feito retorna o objeto abaixo. O endereço do cliente é um endereço de documentação e a cidade é um placeholder: