Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisation du point de terminaison des métadonnées
Le point de terminaison des métadonnées Lambda est une API HTTP locale au sein de l'environnement d'exécution. Il renvoie les métadonnées dans un format JSON simple, y compris l'ID de la zone de disponibilité (AZ) dans laquelle l'environnement est exécuté. Utilisez-le pour acheminer vers des ressources de même zone, telles qu'Amazon et ElastiCache Amazon RDS, afin de réduire le temps de latence. Vous pouvez également l'utiliser pour implémenter des modèles de AZ-aware résilience.
Note
Une fonction Web exécute un serveur Web permanent plutôt qu'un gestionnaire par appel. Lisez le point de terminaison des métadonnées une fois au démarrage de l'application et mettez la valeur en cache, ou lisez-le par demande si vous en avez besoin dans le contexte de la demande. Ne supposez pas qu'il existe un nouveau gestionnaire par appel. Pour une fonction Web multirégionale, le point de terminaison indique l'AZ Région AWS qui répond à la demande.
Sections
Prise en main
Powertools for AWS Lambda fournit un utilitaire permettant d'accéder au point de terminaison des métadonnées Lambda. L'utilitaire met en cache la réponse après le premier appel. Pour plus d'informations, consultez la section Métadonnées dans la documentation de Powertools for AWS Lambda TypeScript ().
Les fonctions Web étant exécutées surNode.js, l'exemple suivant utilise l'utilitaire de métadonnées Powertools for AWS Lambda pour lire l'ID AZ une fois au démarrage du serveur et le mettre en cache pendant toute la durée du processus. Exécutez la commande npm suivante pour installer le package Powertools et Express :
npm install @aws-lambda-powertools/commons express
L'exemple suivant l'utilise à des Express fins d'illustration. La même approche fonctionne avec n'importe quel framework Node.js Web ; voirFrameworks Web pris en charge. Lisez l'ID AZ au démarrage et réutilisez la valeur mise en cache lors du traitement des demandes :
Exemple Récupération de l'identifiant AZ avec Powertools au démarrage () 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}`); });
Vous pouvez également appeler directement le point de terminaison des métadonnées. Lambda définit automatiquement les variables d'AWS_LAMBDA_METADATA_TOKENenvironnement AWS_LAMBDA_METADATA_API et dans chaque environnement d'exécution, et vous incluez le jeton avec le schéma Bearer dans l'en-tête. Authorization Pour l'URL du point de terminaison, les formats de demande et de réponse, ainsi que les réponses aux erreurs, consultezUtilisation du point de terminaison de métadonnées Lambda.
Par exemple, lisez l'adresse du serveur de métadonnées depuis AWS_LAMBDA_METADATA_API et envoyez une requête GET authentifiée :
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')
Le point de terminaison revientapplication/json. Par exemple : {"AvailabilityZoneID": "use1-az1"}.