Usar o endpoint de metadados Lambda
O endpoint de metadados do Lambda permite que suas funções do Lambda identifiquem em qual Zona de Disponibilidade (AZ) estão sendo executadas, possibilitando a otimização da latência por meio do roteamento para recursos na mesma AZ, como o Amazon ElastiCache e os endpoints do Amazon RDS, além de permitir a implementação de padrões de resiliência que levam em conta a AZ.
O endpoint retorna metadados em um formato JSON simples por meio de uma API HTTP no localhost dentro do ambiente de execução e está acessível tanto aos runtimes quanto às extensões.
Introdução
O Powertools para AWS Lambda fornece um utilitário para acessar o endpoint de metadados do Lambda em Python, TypeScript, Java e .NET. O utilitário armazena a resposta em cache após a primeira chamada e lida com a invalidação do cache do SnapStart automaticamente.
Use o utilitário de metadados Powertools para AWS Lambda ou chame o endpoint de metadados diretamente
Sobre IDs de zonas de disponibilidade
Os IDs de AZ (por exemplo, use1-az1) sempre se referem à mesma localização física em todas as contas da AWS, enquanto os nomes de AZ (por exemplo,us-east-1a) podem ser mapeados para diferentes infraestruturas físicas em cada conta da AWS em determinadas regiões. Para obter mais informações, consulte IDs de AZ para garantir a consistência entre contas.
Converter o ID da AZ em nome da AZ:
Para converter um ID de AZ em um nome de AZ, utilize a API DescribeAvailabilityZones do Amazon EC2. Para usar essa API, adicione a permissão ec2:DescribeAvailabilityZones ao perfil de execução da sua função.
Referência de API
Variáveis de ambiente
O Lambda define automaticamente as seguintes variáveis de ambiente em todos os ambientes de execução:
-
AWS_LAMBDA_METADATA_API: o endereço do servidor de metadados no formato{ipv4_address}:{port}(por exemplo,169.254.100.1:9001). -
AWS_LAMBDA_METADATA_TOKEN: um token de autenticação exclusivo para o ambiente de execução atual. O Lambda gera esse token automaticamente na inicialização. Inclua-o em todas as solicitações da API de metadados.
Endpoint
GET http://${AWS_LAMBDA_METADATA_API}/2026-01-15/metadata/execution-environment
Solicitação
Cabeçalhos obrigatórios:
-
Authorization: o valor do token da variável de ambienteAWS_LAMBDA_METADATA_TOKENcom o esquema Bearer:Bearer <token>. Essa autenticação baseada em token oferece proteção em camadas contra vulnerabilidades de falsificação de solicitação do lado do servidor (SSRF). Cada ambiente de execução recebe um token único, gerado aleatoriamente, durante a inicialização.
Resposta
Status: 200 OK
Content-Type: application/json
Cache-Control: private, max-age=43200, immutable
A resposta é imutável em um ambiente de execução. Os clientes devem armazenar a resposta em cache e respeitar o TTL Cache-Control. No caso das funções SnapStart, o TTL é reduzido durante a inicialização para que os clientes atualizem os metadados após a restauração, quando o ambiente de execução estiver em uma zona de disponibilidade diferente. Se você usa o Powertools, o armazenamento em cache e a invalidação do SnapStart são gerenciados automaticamente.
Corpo:
{ "AvailabilityZoneID": "use1-az1" }
O campo AvailabilityZoneID contém o identificador exclusivo da zona de disponibilidade onde o ambiente de execução está sendo executado.
nota
Campos adicionais podem ser adicionados à resposta em atualizações futuras. Os clientes devem ignorar campos desconhecidos e não falhar se novos campos aparecerem.
Respostas de erro
-
401 Não autorizado: o cabeçalho
Authorizationestá ausente ou contém um token inválido. Verifique se você está passandoBearer ${AWS_LAMBDA_METADATA_TOKEN}. -
405 Método não permitido: o método de solicitação não é
GET. -
500 Erro interno do servidor: erro de processamento no lado do servidor.