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 de métadonnées Lambda
Grâce au point de terminaison de métadonnées Lambda, vos fonctions peuvent découvrir dans quelle zone de disponibilité (AZ) elles s'exécutent. Vous pouvez l'utiliser pour optimiser la latence en acheminant vers des ressources de même catégorie AZ, telles qu'Amazon ElastiCache et Amazon RDS, et pour mettre en œuvre des modèles de AZ-aware résilience.
Le point de terminaison renvoie les métadonnées dans un format JSON simple via une API HTTP localhost au sein de l'environnement d'exécution et est accessible à la fois aux environnements d'exécution et aux extensions.
Prise en main
Powertools for AWS Lambda fournit un utilitaire permettant d'accéder au point de terminaison des métadonnées Lambda en Python TypeScript, Java et .NET. L'utilitaire met en cache la réponse après le premier appel et gère automatiquement l'invalidation SnapStart du cache.
Utilisez l'utilitaire de métadonnées Powertools for AWS Lambda ou appelez directement le point de terminaison des métadonnées
Comprendre les ID de zone de disponibilité
Les ID AZ (par exempleuse1-az1) font toujours référence au même emplacement physique pour tous les AWS comptes, tandis que les noms AZ (par exempleus-east-1a) peuvent correspondre à une infrastructure physique différente de chaque AWS
compte dans certaines régions. Pour plus d'informations, consultez la section Identifiants AZ pour la cohérence entre les comptes.
Conversion d'un identifiant AZ en nom de zone Z :
Pour convertir un identifiant AZ en nom AZ, utilisez l'DescribeAvailabilityZonesAPI Amazon EC2. Pour utiliser cette API, ajoutez l'ec2:DescribeAvailabilityZonesautorisation au rôle d'exécution de votre fonction.
Référence des API
Variables d’environnement
Lambda définit automatiquement les variables d'environnement suivantes dans chaque environnement d'exécution :
-
AWS_LAMBDA_METADATA_API— Adresse du serveur de métadonnées au format{ipv4_address}:{port}(par exemple,169.254.100.1:9001). -
AWS_LAMBDA_METADATA_TOKEN— Un jeton d'authentification unique pour l'environnement d'exécution actuel. Lambda génère ce jeton automatiquement lors de l'initialisation. Incluez-le dans toutes les demandes d'API de métadonnées.
Endpoint
GET http://${AWS_LAMBDA_METADATA_API}/2026-01-15/metadata/execution-environment
Demande
En-têtes obligatoires :
-
Authorization— La valeur du jeton de la variable d'AWS_LAMBDA_METADATA_TOKENenvironnement avec le schéma Bearer :Bearer <token>. Cette authentification basée sur des jetons fournit une protection approfondie contre les vulnérabilités SSRF ( Server-Side Request Forgery). Chaque environnement d'exécution reçoit un jeton unique généré de manière aléatoire lors de l'initialisation.
Réponse
État : 200 OK
Content-Type: application/json
Cache-Control: private, max-age=43200, immutable
La réponse est immuable dans un environnement d'exécution. Les clients doivent mettre la réponse en cache et respecter le Cache-Control TTL. Pour les SnapStart fonctions, le TTL est réduit lors de l'initialisation afin que les clients actualisent les métadonnées après la restauration lorsque l'environnement d'exécution peut se trouver dans une zone de zone de disponibilité différente. Si vous utilisez Powertools, la mise en cache et l' SnapStart invalidation sont gérées automatiquement.
Corps de texte:
{ "AvailabilityZoneID": "use1-az1" }
Le AvailabilityZoneID champ contient l'identifiant unique de la zone de disponibilité dans laquelle s'exécute l'environnement d'exécution.
Note
Des champs supplémentaires pourraient être ajoutés à la réponse dans les prochaines mises à jour. Les clients doivent ignorer les champs inconnus et ne pas échouer si de nouveaux champs apparaissent.
Réponses d'erreur
-
401 Non autorisé — L'
Authorizationen-tête est manquant ou contient un jeton non valide. Vérifiez que vous êtes en train de passerBearer ${AWS_LAMBDA_METADATA_TOKEN}. -
405 Méthode non autorisée — La méthode de demande ne l'est pas
GET. -
500 Erreur interne au serveur — erreur Server-side de traitement.