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.
Verwendung der Lambda-Laufzeit API für benutzerdefinierte Laufzeiten
AWS Lambda bietet eine HTTP API für benutzerdefinierte Laufzeiten, um Aufrufereignisse von Lambda zu empfangen und Antwortdaten innerhalb der Lambda-Ausführungsumgebung zurückzusenden. Dieser Abschnitt enthält die API Referenz für die Lambda-LaufzeitAPI.
Die API Open-Spezifikation für die API Runtime-Version 2018-06-01 ist in runtime-api.zip verfügbar
Um eine API Anfrage zu erstellenURL, rufen Runtimes den API Endpunkt aus der AWS_LAMBDA_RUNTIME_API
Umgebungsvariablen ab, fügen die API Version hinzu und fügen den gewünschten Ressourcenpfad hinzu.
Beispiel Anforderung
curl "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next"
Nächster Aufruf
Pfad – /runtime/invocation/next
Methode — GET
Die Laufzeit sendet diese Meldung an Lambda, um ein Aufrufereignis anzufordern. Der Antworttext enthält die Nutzdaten des Aufrufs. Dabei handelt es sich um ein JSON Dokument, das Ereignisdaten aus dem Funktionstrigger 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
— Die ARN der Lambda-Funktion, der Version oder des Alias, die im Aufruf angegeben wurde.Beispiel,
arn:aws:lambda:us-east-2:123456789012:function:custom-runtime
. -
Lambda-Runtime-Trace-Id
– Der AWS X-Ray -Nachverfolgungs-Header.Beispiel,
Root=1-5bef4de7-ad49b0e87f6ef6c87fc2e700;Parent=9a9197af755a6419;Sampled=1
. -
Lambda-Runtime-Client-Context
— Bei Aufrufen vom AWS Handy SDK aus Daten über die Client-Anwendung und das Gerät. -
Lambda-Runtime-Cognito-Identity
— Für Aufrufe vom AWS Handy SDK aus 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
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.
Beispiel 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
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>. Beispielsweise:
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.
Beispiel Funktionsfehler
{ "errorMessage" : "Error parsing event data.", "errorType" : "InvalidEventDataException", "stackTrace": [ ] }
Antworttextparameter:
StatusResponse
– Zeichenfolge. Statusinformationen, gesendet mit 202 Antwortcodes.ErrorResponse
– Zusätzliche Fehlerinformationen, die 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.
Beispiel 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
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>. Beispielsweise:
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.
Beispiel Funktionsfehler
{ "errorMessage" : "Error parsing event data.", "errorType" : "InvalidEventDataException", "stackTrace": [ ] }
Antworttextparameter:
StatusResponse
– Zeichenfolge. Statusinformationen, gesendet mit 202 Antwortcodes.ErrorResponse
– Zusätzliche Fehlerinformationen, die 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.
Beispiel 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"