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 DE. |
geoip_country_name |
Nome do país, por exemplo Germany. |
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: