

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 der Lambda-Laufzeit-API für benutzerdefinierte Laufzeiten
<a name="runtimes-api"></a>

AWS Lambda [bietet eine HTTP-API für [benutzerdefinierte Laufzeiten](runtimes-custom.md), um Aufrufereignisse von Lambda zu empfangen und Antwortdaten innerhalb der Lambda-Ausführungsumgebung zurückzusenden.](lambda-runtimes.md) Dieser Abschnitt enthält die API-Referenz für die Lambda-Laufzeiten-API.

**Lambda Managed Instances unterstützen gleichzeitige Anfragen**  
Lambda Managed Instances verwenden dieselbe Runtime-API wie Lambda-Funktionen (Standard). Der Hauptunterschied besteht darin, dass verwaltete Instances gleichzeitige `/response` Anfragen `/next` und Anfragen bis zum konfigurierten Limit akzeptieren können. `AWS_LAMBDA_MAX_CONCURRENCY` Dadurch können mehrere Aufrufe gleichzeitig in einer einzigen Ausführungsumgebung verarbeitet werden. Weitere Informationen zu verwalteten Instanzen finden Sie unter. [Grundlegendes zur Ausführungsumgebung von Lambda Managed Instances](lambda-managed-instances-execution-environment.md)

![\[Architekturdiagramm der Ausführungsumgebung.\]](http://docs.aws.amazon.com/de_de/lambda/latest/dg/images/telemetry-api-concept-diagram.png)


Die OpenAPI-Spezifikation für die Laufzeit-API-Version **2018-06-01** ist unter [runtime-api.zip](samples/runtime-api.zip) verfügbar.

Um eine API-Anforderungs-URL zu erstellen, rufen Laufzeitumgebungen den API-Endpunkt aus der `AWS_LAMBDA_RUNTIME_API`-Umgebungsvariablen ab, fügen die API-Version und dann den gewünschten Ressourcenpfad hinzu.

**Example Anforderung**  

```
curl "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next"
```

**Topics**
+ [Nächster Aufruf](#runtimes-api-next)
+ [Aufrufantwort](#runtimes-api-response)
+ [Initialisierungsfehler](#runtimes-api-initerror)
+ [Aufruffehler](#runtimes-api-invokeerror)

## Nächster Aufruf
<a name="runtimes-api-next"></a>

**Pfad** – `/runtime/invocation/next`

**Methode** – **GET**

Die Laufzeit sendet diese Meldung an Lambda, um ein Aufrufereignis anzufordern. Der Antworttext enthält die Nutzlast aus dem Aufruf. Dabei handelt es sich um ein JSON-Dokument, das Ereignisdaten aus dem Funktionsauslöser enthält. Die Antwort-Header enthalten zusätzliche Daten zum Aufruf.

**Antwort-Header**
+ `Lambda-Runtime-Aws-Request-Id` – Die Anforderungs-ID, mit der die Anforderung identifiziert wird, die den Aufruf der Funktion ausgelöst hat.

  Beispiel, `8476a536-e9f4-11e8-9739-2dfe598c3fcd`.
+ `Lambda-Runtime-Deadline-Ms` – Das Datum, an dem eine Zeitüberschreitung für die Funktion eintritt (in Unix-Millisekunden). 

  Beispiel, `1542409706888`.
+ `Lambda-Runtime-Invoked-Function-Arn` – Der ARN der/des Lambda-Funktion, -Version oder -Alias, die/der im Aufruf angegeben ist. 

  Beispiel, `arn:aws:lambda:us-east-2:123456789012:function:custom-runtime`.
+ `Lambda-Runtime-Trace-Id` – Der [AWS X-Ray -Nachverfolgungs-Header](https://docs.aws.amazon.com/xray/latest/devguide/xray-concepts.html#xray-concepts-tracingheader). 

  Beispiel, `Root=1-5bef4de7-ad49b0e87f6ef6c87fc2e700;Parent=9a9197af755a6419;Sampled=1`.
+ `Lambda-Runtime-Client-Context`— Für Aufrufe aus dem AWS Mobile SDK: Daten über die Client-Anwendung und das Gerät.
+ `Lambda-Runtime-Cognito-Identity`— Für Aufrufe aus dem AWS Mobile SDK Daten über den Amazon Cognito Cognito-Identitätsanbieter.

Legen Sie kein Timeout für die `GET`-Anfrage fest, da sich die Antwort verzögern könnte. Zwischen dem Bootstrap der Laufzeit durch Lambda und der Rückgabe eines Ereignisses durch die Laufzeit ist der Laufzeitprozess möglicherweise für mehrere Sekunden eingefroren.

Die Anforderungs-ID verfolgt den Aufruf innerhalb von Lambda nach. Sie verwenden sie, um den Aufruf anzugeben, wenn Sie die Antwort senden.

Der Nachverfolgungs-Header enthält die Nachverfolgungs-ID, die ID des übergeordneten Segments und die Erfassungsentscheidung Wenn die Anforderung erfasst wurde, wurde die Anforderung von Lambda oder einem Upstream-Service erfasst. Die Laufzeit sollte die `_X_AMZN_TRACE_ID` auf den Wert des Headers festlegen. Das X-Ray-SDK liest dies, um die Anfrage abzurufen IDs und festzustellen, ob sie verfolgt werden soll.

## Aufrufantwort
<a name="runtimes-api-response"></a>

**Pfad** – `/runtime/invocation/AwsRequestId/response`

**Methode** – **POST**

Nachdem die Funktion bis zum Abschluss ausgeführt wurde, schickt die Laufzeitumgebung eine Aufrufantwort an Lambda. Im Fall synchroner Aufrufe schickt Lambda die Antwort anschließend an den Client zurück.

**Example Erfolg für Anforderung**  

```
REQUEST_ID=156cb537-e2d4-11e8-9b34-d36013741fb9
curl "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/$REQUEST_ID/response"  -d "SUCCESS"
```

## Initialisierungsfehler
<a name="runtimes-api-initerror"></a>

Wenn die Funktion einen Fehler zurückgibt oder die Laufzeit während der Initialisierung auf einen Fehler stößt, verwendet die Laufzeit diese Methode, um den Fehler an Lambda zu melden.

**Pfad** – `/runtime/init/error`

**Methode** – **POST**

**Header**

`Lambda-Runtime-Function-Error-Type` – Der Fehlertyp, auf den die Laufzeit gestoßen ist. Erforderlich: Nein. 

Dieser Header besteht aus einem Zeichenfolgen-Wert. Lambda akzeptiert jede Zeichenfolge, aber wir empfehlen ein Format von <category.reason>. Beispiel:
+ Laufzeit. NoSuchHandler
+ Laufzeit. APIKeyNotFound
+ Laufzeit. ConfigInvalid
+ Laufzeit. UnknownReason

**Body-Parameter**

`ErrorRequest` – Informationen über den Fehler. Erforderlich: Nein 

Dieses Feld ist ein JSON-Objekt mit der folgenden Struktur:

```
{
      errorMessage: string (text description of the error),
      errorType: string,
      stackTrace: array of strings
}
```

Beachten Sie, dass Lambda jeden Wert für `errorType` akzeptiert.

Das folgende Beispiel zeigt eine Lambda-Funktionsfehlermeldung, in der die Funktion die im Aufruf bereitgestellten Ereignisdaten nicht analysieren konnte.

**Example Funktionsfehler**  

```
{
      "errorMessage" : "Error parsing event data.",
      "errorType" : "InvalidEventDataException",
      "stackTrace": [ ]
}
```

**Antworttextparameter:**
+ `StatusResponse` – Zeichenfolge. Statusinformationen, gesendet mit 202 Antwortcodes. 
+ `ErrorResponse`— Zusätzliche Fehlerinformationen, die zusammen mit den Fehlerantwortcodes gesendet werden. ErrorResponse enthält einen Fehlertyp und eine Fehlermeldung.

**Antwortcodes**
+ 202 – Akzeptiert
+ 403 – Verboten
+ 500 – Container-Fehler. Nicht wiederherstellbarer Zustand. Die Laufzeit sollte umgehend beendet werden.

**Example Initialisierungsfehleranforderung**  

```
ERROR="{\"errorMessage\" : \"Failed to load function.\", \"errorType\" : \"InvalidFunctionException\"}"
curl "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/init/error" -d "$ERROR" --header "Lambda-Runtime-Function-Error-Type: Unhandled"
```

## Aufruffehler
<a name="runtimes-api-invokeerror"></a>

Wenn die Funktion einen Fehler zurückgibt oder die Laufzeit auf einen Fehler stößt, verwendet die Laufzeitumgebung diese Methode, um den Fehler an Lambda zu melden.

**Pfad** – `/runtime/invocation/AwsRequestId/error`

**Methode** – **POST**

**Header**

`Lambda-Runtime-Function-Error-Type` – Der Fehlertyp, auf den die Laufzeit gestoßen ist. Erforderlich: Nein. 

Dieser Header besteht aus einem Zeichenfolgen-Wert. Lambda akzeptiert jede Zeichenfolge, aber wir empfehlen ein Format von <category.reason>. Beispiel:
+ Laufzeit. NoSuchHandler
+ Laufzeit. APIKeyNotFound
+ Laufzeit. ConfigInvalid
+ Laufzeit. UnknownReason

**Body-Parameter**

`ErrorRequest` – Informationen über den Fehler. Erforderlich: Nein 

Dieses Feld ist ein JSON-Objekt mit der folgenden Struktur:

```
{
      errorMessage: string (text description of the error),
      errorType: string,
      stackTrace: array of strings
}
```

Beachten Sie, dass Lambda jeden Wert für `errorType` akzeptiert.

Das folgende Beispiel zeigt eine Lambda-Funktionsfehlermeldung, in der die Funktion die im Aufruf bereitgestellten Ereignisdaten nicht analysieren konnte.

**Example Funktionsfehler**  

```
{
      "errorMessage" : "Error parsing event data.",
      "errorType" : "InvalidEventDataException",
      "stackTrace": [ ]
}
```

**Antworttextparameter:**
+ `StatusResponse` – Zeichenfolge. Statusinformationen, gesendet mit 202 Antwortcodes. 
+ `ErrorResponse`— Zusätzliche Fehlerinformationen, die zusammen mit den Fehlerantwortcodes gesendet werden. ErrorResponse enthält einen Fehlertyp und eine Fehlermeldung.

**Antwortcodes**
+ 202 – Akzeptiert
+ 400 – Ungültige Anfrage
+ 403 – Verboten
+ 500 – Container-Fehler. Nicht wiederherstellbarer Zustand. Die Laufzeit sollte umgehend beendet werden.

**Example Fehler für Anforderung**  

```
REQUEST_ID=156cb537-e2d4-11e8-9b34-d36013741fb9
ERROR="{\"errorMessage\" : \"Error parsing event data.\", \"errorType\" : \"InvalidEventDataException\"}"
curl "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/$REQUEST_ID/error" -d "$ERROR" --header "Lambda-Runtime-Function-Error-Type: Unhandled"
```