Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwenden des Metadaten-Endpunkts
Der Lambda-Metadaten-Endpunkt ist eine lokale HTTP-API innerhalb der Ausführungsumgebung. Sie gibt Metadaten in einem einfachen JSON-Format zurück, einschließlich der Availability Zone (AZ) -ID, in der die Umgebung ausgeführt wird. Verwenden Sie es, um zu Ressourcen mit derselben AZ wie Amazon ElastiCache und Amazon RDS weiterzuleiten, um die Latenz zu verringern. Sie können es auch verwenden, um AZ-aware Resilienzmuster zu implementieren.
Anmerkung
Eine Webfunktion führt einen persistenten Webserver und nicht einen Handler pro Aufruf aus. Lesen Sie den Metadaten-Endpunkt einmal beim Start der Anwendung und speichern Sie den Wert im Cache oder lesen Sie ihn pro Anfrage, wenn Sie ihn im Anforderungskontext benötigen. Gehen Sie nicht von einem neuen Handler pro Aufruf aus. Bei einer Webfunktion mit mehreren Regionen meldet der Endpunkt die AZ innerhalb der Region AWS-Region , die die Anfrage bearbeitet.
Sections
Erste Schritte
Powertools for AWS Lambda bietet ein Hilfsprogramm für den Zugriff auf den Lambda-Metadaten-Endpunkt. Das Hilfsprogramm speichert die Antwort nach dem ersten Anruf im Cache. Weitere Informationen finden Sie unter Metadaten in der Dokumentation zu Powertools for AWS Lambda (TypeScript).
Da Web Functions auf läuftNode.js, verwendet das folgende Beispiel das Metadaten-Hilfsprogramm Powertools for AWS Lambda, um die AZ-ID einmal beim Serverstart zu lesen und sie für die gesamte Lebensdauer des Prozesses zwischenzuspeichern. Führen Sie den folgenden npm-Befehl aus, um das Powertools-Paket und Express zu installieren:
npm install @aws-lambda-powertools/commons express
Das folgende Beispiel dient der Express Veranschaulichung. Derselbe Ansatz funktioniert mit jedem Node.js Web-Framework; sieheUnterstützte Web-Frameworks. Lesen Sie die AZ-ID beim Start und verwenden Sie den zwischengespeicherten Wert bei der Bearbeitung von Anfragen erneut:
Beispiel Abrufen der AZ-ID mit Powertools beim Start () 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}`); });
Sie können den Metadaten-Endpunkt auch direkt aufrufen. Lambda legt automatisch die Umgebungsvariablen AWS_LAMBDA_METADATA_API und die AWS_LAMBDA_METADATA_TOKEN Umgebungsvariablen in jeder Ausführungsumgebung fest, und Sie fügen das Token mit dem Bearer-Schema in den Authorization Header ein. Informationen zur Endpunkt-URL, zu den Anfrage- und Antwortformaten sowie zu Fehlerantworten finden Sie unter. Verwenden des Lambda-Metadaten-Endpunkts
Lesen Sie beispielsweise die Metadaten-Serveradresse von AWS_LAMBDA_METADATA_API und senden Sie eine authentifizierte GET-Anfrage:
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')
Der Endpunkt kehrt zurückapplication/json. Beispiel: {"AvailabilityZoneID": "use1-az1"}.