

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 Lambda-Metadaten-Endpunkts
<a name="configuration-metadata-endpoint"></a>

Mit dem Lambda-Metadaten-Endpunkt können Ihre Funktionen ermitteln, in welcher Availability Zone (AZ) sie ausgeführt werden. Auf diese Weise können Sie die Latenz optimieren, indem Sie zu denselben AZ-Ressourcen wie Amazon ElastiCache - und Amazon RDS-Endpunkten weiterleiten und AZ-fähige Resilienzmuster implementieren.

Der Endpunkt gibt Metadaten in einem einfachen JSON-Format über eine Localhost-HTTP-API innerhalb der Ausführungsumgebung zurück und ist sowohl für Laufzeiten als auch für Erweiterungen zugänglich.

**Topics**
+ [

## Erste Schritte
](#metadata-endpoint-getting-started)
+ [

## Die Availability Zone verstehen IDs
](#metadata-endpoint-az-ids)
+ [

## API-Referenz
](#metadata-endpoint-api-reference)

## Erste Schritte
<a name="metadata-endpoint-getting-started"></a>

[Powertools for AWS Lambda](https://docs.aws.amazon.com/powertools/) bietet ein Hilfsprogramm für den Zugriff auf den Lambda-Metadaten-Endpunkt in Python TypeScript, Java und .NET. Das Hilfsprogramm speichert die Antwort nach dem ersten Aufruf im Cache und verarbeitet SnapStart die Cache-Invalidierung automatisch.

Verwenden Sie das Metadaten-Hilfsprogramm Powertools for AWS Lambda oder rufen Sie den Metadaten-Endpunkt direkt auf

------
#### [ Python ]

Installieren Sie das Powertools-Paket:

```
pip install "aws-lambda-powertools"
```

Verwenden Sie das Metadaten-Hilfsprogramm in Ihrem Handler:

**Example Abrufen der AZ-ID mit Powertools (Python)**  

```
from aws_lambda_powertools.utilities.lambda_metadata import get_lambda_metadata

def handler(event, context):
    metadata = get_lambda_metadata()
    az_id = metadata.availability_zone_id  # e.g., "use1-az1"

    return {"az_id": az_id}
```

------
#### [ TypeScript ]

Installieren Sie das Powertools-Paket:

```
npm install @aws-lambda-powertools/commons
```

Verwenden Sie das Metadaten-Hilfsprogramm in Ihrem Handler:

**Example Abrufen der AZ-ID mit Powertools () TypeScript**  

```
import { getMetadata } from '@aws-lambda-powertools/commons/utils/metadata';

const metadata = await getMetadata();

export const handler = async () => {
  const { AvailabilityZoneID: azId } = metadata;
  return azId;
};
```

------
#### [ Java ]

Fügen Sie die Powertools-Abhängigkeit zu Ihrem hinzu: `pom.xml`

```
<dependencies>
    <dependency>
        <groupId>software.amazon.lambda</groupId>
        <artifactId>powertools-lambda-metadata</artifactId>
        <version>2.10.0</version>
    </dependency>
</dependencies>
```

Verwenden Sie den Metadaten-Client in Ihrem Handler:

**Example Abrufen der AZ-ID mit Powertools (Java)**  

```
import software.amazon.lambda.powertools.metadata.LambdaMetadata;
import software.amazon.lambda.powertools.metadata.LambdaMetadataClient;

public class App implements RequestHandler<Object, String> {

    @Override
    public String handleRequest(Object input, Context context) {
        LambdaMetadata metadata = LambdaMetadataClient.get();
        String azId = metadata.getAvailabilityZoneId(); // e.g., "use1-az1"

        return "{\"azId\": \"" + azId + "\"}";
    }
}
```

------
#### [ .NET ]

Installieren Sie das Powertools-Paket:

```
dotnet add package AWS.Lambda.Powertools.Metadata
```

Verwenden Sie die Metadatenklasse in Ihrem Handler:

**Example Abrufen der AZ-ID mit Powertools (.NET)**  

```
using AWS.Lambda.Powertools.Metadata;

public class Function
{
    public string Handler(object input, ILambdaContext context)
    {
        var azId = LambdaMetadata.AvailabilityZoneId;
        return $"Running in AZ: {azId}";
    }
}
```

------
#### [ All Runtimes ]

Alle Lambda-Laufzeiten unterstützen den Metadaten-Endpunkt, einschließlich benutzerdefinierter Laufzeiten und Container-Images. Verwenden Sie das folgende Beispiel, um mithilfe der Umgebungsvariablen, die Lambda automatisch in der Ausführungsumgebung festlegt, direkt von Ihrer Funktion aus auf die Metadaten-API zuzugreifen.

**Example Direkter Zugriff auf den Metadaten-Endpunkt**  

```
# Variables are automatically set by Lambda
METADATA_ENDPOINT="http://${AWS_LAMBDA_METADATA_API}/2026-01-15/metadata/execution-environment"

# Make the request
RESPONSE=$(curl -s -H "Authorization: Bearer ${AWS_LAMBDA_METADATA_TOKEN}" "$METADATA_ENDPOINT")

# Parse the AZ ID
AZ_ID=$(echo "$RESPONSE" | jq -r '.AvailabilityZoneID')

echo "Function is running in AZ ID: $AZ_ID"
```

------

## Die Availability Zone verstehen IDs
<a name="metadata-endpoint-az-ids"></a>

AZ IDs (zum Beispiel`use1-az1`) bezieht sich immer auf denselben physischen Standort für alle AWS Konten, während AZ-Namen (z. B.`us-east-1a`) in bestimmten Regionen möglicherweise unterschiedlichen physischen Infrastrukturen in jedem AWS Konto zugeordnet werden. Weitere Informationen finden Sie unter [AZ IDs für kontoübergreifende Konsistenz](https://docs.aws.amazon.com/global-infrastructure/latest/regions/az-ids.html).

**Konvertierung der AZ-ID in den AZ-Namen:**

Verwenden Sie die Amazon EC2 [DescribeAvailabilityZones](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html)EC2-API, um eine AZ-ID in einen AZ-Namen zu konvertieren. Um diese API zu verwenden, fügen Sie die `ec2:DescribeAvailabilityZones` Berechtigung zur Ausführungsrolle Ihrer Funktion hinzu.

## API-Referenz
<a name="metadata-endpoint-api-reference"></a>

### Umgebungsvariablen
<a name="metadata-endpoint-env-vars"></a>

Lambda legt in jeder Ausführungsumgebung automatisch die folgenden Umgebungsvariablen fest:
+ `AWS_LAMBDA_METADATA_API`— Die Metadaten-Serveradresse im Format `{ipv4_address}:{port}` (zum Beispiel`169.254.100.1:9001`).
+ `AWS_LAMBDA_METADATA_TOKEN`— Ein eindeutiges Authentifizierungstoken für die aktuelle Ausführungsumgebung. Lambda generiert dieses Token automatisch bei der Initialisierung. Nehmen Sie es in alle Metadaten-API-Anfragen auf.

### Endpoint
<a name="metadata-endpoint-url"></a>

`GET http://${AWS_LAMBDA_METADATA_API}/2026-01-15/metadata/execution-environment`

### Anforderung
<a name="metadata-endpoint-request"></a>

**Erforderliche Header:**
+ `Authorization`— Der Tokenwert aus der `AWS_LAMBDA_METADATA_TOKEN` Umgebungsvariablen mit dem Bearer-Schema:. `Bearer <token>` Diese tokenbasierte Authentifizierung bietet umfassenden Schutz vor SSRF-Schwachstellen (Server-Side Request Forgery). Jede Ausführungsumgebung erhält bei der Initialisierung ein eindeutiges, zufällig generiertes Token.

### Antwort
<a name="metadata-endpoint-response"></a>

**Status:** `200 OK`

**Inhaltstyp:** `application/json`

**Cache-Steuerung:** `private, max-age=43200, immutable`

Die Antwort ist innerhalb einer Ausführungsumgebung unveränderlich. Clients sollten die Antwort zwischenspeichern und die `Cache-Control` TTL respektieren. Bei SnapStart Funktionen wird die TTL während der Initialisierung reduziert, sodass Clients die Metadaten nach der Wiederherstellung aktualisieren, wenn sich die Ausführungsumgebung möglicherweise in einer anderen AZ befindet. Wenn Sie Powertools verwenden, werden Caching und SnapStart Invalidierung automatisch durchgeführt.

**Fließtext:**

```
{
  "AvailabilityZoneID": "use1-az1"
}
```

Das `AvailabilityZoneID` Feld enthält den eindeutigen Bezeichner für die Availability Zone, in der die Ausführungsumgebung ausgeführt wird.

**Anmerkung**  
In future Updates können der Antwort weitere Felder hinzugefügt werden. Kunden sollten unbekannte Felder ignorieren und nicht scheitern, wenn neue Felder erscheinen.

### Fehlermeldungen
<a name="metadata-endpoint-errors"></a>
+ **401 Nicht autorisiert** — Der `Authorization` Header fehlt oder enthält ein ungültiges Token. Stellen Sie sicher, dass Sie die Prüfung bestanden haben`Bearer ${AWS_LAMBDA_METADATA_TOKEN}`.
+ **405 Methode nicht zulässig** — Die Anforderungsmethode ist nicht zulässig`GET`.
+ **500 Interner Serverfehler** — Serverseitiger Verarbeitungsfehler.