Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo dell'endpoint dei metadati
L'endpoint di metadati Lambda è un'API HTTP locale all'interno dell'ambiente di esecuzione. Restituisce i metadati in un semplice formato JSON, incluso l'ID della zona di disponibilità (AZ) in cui è in esecuzione l'ambiente. Usalo per indirizzare verso risorse Same-AZ come Amazon e ElastiCache Amazon RDS per una latenza inferiore. Puoi anche usarlo per implementare modelli di resilienza. AZ-aware
Nota
Una funzione Web esegue un server Web persistente anziché un gestore per chiamata. Leggi l'endpoint dei metadati una volta all'avvio dell'applicazione e memorizza il valore nella cache, oppure leggilo per richiesta se ne hai bisogno nel contesto della richiesta. Non date per scontato un nuovo gestore per ogni chiamata. Per una funzione Web multiregionale, l'endpoint riporta l'AZ all'interno della zona che sta servendo la richiesta. Regione AWS
Sections
Nozioni di base
Powertools for AWS Lambda fornisce un'utilità per accedere all'endpoint di metadati Lambda. L'utilità memorizza nella cache la risposta dopo la prima chiamata. Per ulteriori informazioni, vedete Metadati nella documentazione di Powertools for AWS Lambda (). TypeScript
Poiché Web Functions è in esecuzioneNode.js, l'esempio seguente utilizza l'utilità di metadati Powertools for AWS Lambda per leggere l'ID AZ una volta all'avvio del server e memorizzarlo nella cache per tutta la durata del processo. Esegui il seguente comando npm per installare il pacchetto Powertools ed Express:
npm install @aws-lambda-powertools/commons express
L'esempio seguente utilizza a Express scopo illustrativo. Lo stesso approccio funziona con qualsiasi framework Node.js web; vediFramework web supportati. Leggi l'ID AZ all'avvio e riutilizza il valore memorizzato nella cache durante la gestione delle richieste:
Esempio Recupero dell'ID AZ con Powertools all'avvio () TypeScript
import express from 'express'; import { getMetadata } from '@aws-lambda-powertools/commons/utils/metadata'; const app = express(); // Read the AZ ID once at startup and cache it for the life of the server. const { AvailabilityZoneID: azId } = await getMetadata(); // Lambda provides the address to bind in AWS_LAMBDA_HTTP_ENDPOINT ("host:port"). // The fallback applies only when running locally. const [host, port] = (process.env.AWS_LAMBDA_HTTP_ENDPOINT || 'localhost:3000').split(':'); app.get('/', (req, res) => { res.json({ azId }); }); app.listen(port, host, () => { console.log(`Server listening on ${host}:${port}, AZ: ${azId}`); });
Puoi anche chiamare direttamente l'endpoint dei metadati. Lambda imposta automaticamente le variabili di AWS_LAMBDA_METADATA_TOKEN ambiente AWS_LAMBDA_METADATA_API and in ogni ambiente di esecuzione e includi il token con lo schema Bearer nell'intestazione. Authorization Per l'URL dell'endpoint, i formati di richiesta e risposta e le risposte agli errori, consulta. Utilizzo dell'endpoint di metadati Lambda
Ad esempio, leggi l'indirizzo del server di metadati da AWS_LAMBDA_METADATA_API e invia una richiesta GET autenticata:
METADATA_ENDPOINT="http://${AWS_LAMBDA_METADATA_API}/2026-01-15/metadata/execution-environment" RESPONSE=$(curl -s -H "Authorization: Bearer ${AWS_LAMBDA_METADATA_TOKEN}" "$METADATA_ENDPOINT") AZ_ID=$(echo "$RESPONSE" | jq -r '.AvailabilityZoneID')
L'endpoint ritorna. application/json Ad esempio: {"AvailabilityZoneID": "use1-az1"}.