Invoke - AWS Lambda

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.

Invoke

Ruft eine Lambda-Funktion auf. Sie können eine Funktion synchron (und auf die Antwort warten) oder asynchron aufrufen. Standardmäßig ruft Lambda Ihre Funktion synchron auf (InvocationType ist also RequestResponse). Um eine Funktion asynchron aufzurufen, setzen Sie InvocationType auf Event. Lambda übergibt das ClientContext-Objekt nur bei synchronen Aufrufen an Ihre Funktion.

Beim synchronen Aufruf sind Details zur Funktionsantwort, einschließlich Fehlern, im Antworttext und in den Headern enthalten. Für beide Aufruftypen finden Sie weitere Informationen im Ausführungsprotokoll und im Trace.

Wenn ein Fehler auftritt, kann Ihre Funktion mehrmals aufgerufen werden. Das Wiederholungsverhalten variiert je nach Fehlertyp, Client, Ereignisquelle und Aufruftyp. Wenn Sie beispielsweise eine Funktion asynchron aufrufen und sie einen Fehler zurückgibt, führt Lambda die Funktion noch bis zu zweimal aus. Weitere Informationen finden Sie unter Fehlerbehandlung und automatische Wiederholungen in Lambda.

Beim asynchronen Aufruf fügt Lambda Ereignisse zu einer Warteschlange hinzu, bevor sie an Ihre Funktion gesendet werden. Wenn Ihre Funktion nicht genügend Kapazität hat, um mit der Warteschlange Schritt zu halten, können Ereignisse verloren gehen. Gelegentlich kann Ihre Funktion das gleiche Ereignis mehrmals erhalten, auch wenn kein Fehler auftritt. Um nicht verarbeitete Ereignisse beizubehalten, konfigurieren Sie Ihre Funktion mit einer Warteschlange für unzustellbare Nachrichten.

Der Statuscode in der API-Antwort spiegelt keine Funktionsfehler wider. Fehlercodes sind für Fehler reserviert, die die Ausführung Ihrer Funktion verhindern, z. B. Berechtigungsfehler, Kontingent-Fehler oder Probleme mit dem Code und der Konfiguration Ihrer Funktion. Lambda gibt beispielsweise TooManyRequestsException zurück, wenn die Ausführung der Funktion dazu führen würde, dass Sie ein Gleichzeitigkeitslimit auf Kontoebene (ConcurrentInvocationLimitExceeded) oder Funktionsebene (ReservedFunctionConcurrentInvocationLimitExceeded) überschreiten würden.

Bei Funktionen mit langer Zeitüberschreitung wird Ihr Client möglicherweise während des synchronen Aufrufs getrennt, während er auf eine Antwort wartet. Konfigurieren Sie HTTP-Client, SDK, Firewall, Proxy oder Betriebssystem so, dass lange Verbindungen mit Timeout- oder Keepalive-Einstellungen möglich sind.

Diese Operation erfordert die Berechtigung für die Aktion lambda:InvokeFunction . Weitere Informationen zum Einrichten von Berechtigungen für kontoübergreifende Aufrufe finden Sie unter Gewähren des Funktionszugriffs für andere Konten.

Anforderungssyntax

POST /2015-03-31/functions/FunctionName/invocations?Qualifier=Qualifier HTTP/1.1 X-Amz-Invocation-Type: InvocationType X-Amz-Log-Type: LogType X-Amz-Client-Context: ClientContext Payload

URI-Anfrageparameter

Die Anforderung verwendet die folgenden URI-Parameter.

ClientContext

Bis zu 3 583 Byte base64-codierter Daten über den aufrufenden Client, die an die Funktion im Kontextobjekt übergeben werden. Lambda übergibt das ClientContext-Objekt nur bei synchronen Aufrufen an Ihre Funktion.

FunctionName

Der Name der Lambda-Funktion, der Version oder des Alias.

Name Formate
  • Funktionsnamemy-function (nur Name), my-function:v1 (mit Alias).

  • Funktions-ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partielle ARN123456789012:function:my-function.

Sie können an jedes der Formate eine Versionsnummer oder einen Alias anhängen. Die Längenbeschränkung gilt nur für den gesamten ARN. Wenn Sie nur den Funktionsnamen angeben, ist dieser auf 64 Zeichen begrenzt.

Längenbeschränkungen: Minimale Länge von 1. Höchstlänge = 170 Zeichen.

Pattern: (arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\d{1}:)?(\d{12}:)?(function:)?([a-zA-Z0-9-_\.]+)(:(\$LATEST|[a-zA-Z0-9-_]+))?

Erforderlich: Ja

InvocationType

Wählen Sie aus den folgenden Optionen aus.

  • RequestResponse (Standard) – Ruft die Funktion synchron auf. Lassen Sie die Verbindung geöffnet, bis die Funktion eine Antwort zurückgibt oder das Zeitlimit überschritten wird. Die API-Antwort enthält die Funktionsantwort und zusätzliche Daten.

  • Event – Ruft die Funktion asynchron auf. Senden Sie Ereignisse, die mehrmals fehlschlagen, an die Warteschlange für unzustellbare Nachrichten der Funktion (falls eine konfiguriert ist). Die API-Antwort enthält nur einen Statuscode.

  • DryRun – Validieren Sie Parameterwerte und vergewissern Sie sich, dass der Benutzer oder die Rolle berechtigt ist, die Funktion aufzurufen.

Zulässige Werte: Event | RequestResponse | DryRun

LogType

Auf Tail setzen, um das Ausführungsprotokoll in die Antwort einzuschließen. Gilt nur für synchron aufgerufene Funktionen.

Zulässige Werte: None | Tail

Qualifier

Geben Sie eine Version oder einen Alias an, um eine veröffentlichte Version der Funktion aufzurufen.

Längenbeschränkungen: Minimale Länge von 1. Maximale Länge beträgt 128 Zeichen.

Pattern: (|[a-zA-Z0-9$_-]+)

Anforderungstext

Die Anfrage akzeptiert die folgenden Binärdaten.

Payload

JSON zum Bereitstellen Ihrer Lambda-Funktion als Eingabe.

Sie können das JSON direkt eingeben. Zum Beispiel --payload '{ "key": "value" }'. Sie können auch einen Dateipfad angeben. Beispiel: --payload file://payload.json

Antwortsyntax

HTTP/1.1 StatusCode X-Amz-Function-Error: FunctionError X-Amz-Log-Result: LogResult X-Amz-Executed-Version: ExecutedVersion Payload

Antwortelemente

Wenn die Aktion erfolgreich ist, sendet der Dienst die folgende HTTP-Antwort zurück.

StatusCode

Der HTTP-Statuscode befindet sich im 200-Bereich für eine erfolgreiche Anfrage. Für den RequestResponse-Aufruftyp lautet der Statuscode 200. Für den Event-Aufruftyp lautet der Statuscode 202. Für den DryRun-Aufruftyp lautet der Statuscode 204.

Die Antwort gibt die folgenden HTTP-Header zurück.

ExecutedVersion

Die Version der Funktion, die gerade ausgeführt wird. Wenn Sie eine Funktion mit einem Alias aufrufen, gibt dies an, in welche Version der Alias aufgelöst wurde.

Längenbeschränkungen: Minimale Länge von 1. Maximale Länge beträgt 1024 Zeichen.

Pattern: (\$LATEST|[0-9]+)

FunctionError

Falls vorhanden, bedeutet dies, dass während der Funktionsausführung ein Fehler aufgetreten ist. Details zum Fehler sind in der Antwortnutzlast enthalten.

LogResult

Die letzten 4 KB des Ausführungsprotokolls, das base64-codiert ist.

Die Antwort gibt folgendes als HTTP-Hauptteil zurück.

Payload

Die Antwort von der Funktion oder ein Fehlerobjekt.

Fehler

Weitere Informationen zu den allgemeinen Fehlern, die bei allen Aktionen zurückgegeben werden, finden Sie unter Häufige Fehler.

EC2AccessDeniedException

Benötigen Sie zusätzliche Berechtigungen zum Konfigurieren von VPC-Einstellungen.

HTTP-Statuscode: 502

EC2ThrottledException

Amazon EC2 hat AWS Lambda während der Lambda-Funktionsinitialisierung unter Verwendung der für die Funktion bereitgestellten Ausführungsrolle gedrosselt.

HTTP-Statuscode: 502

EC2UnexpectedException

AWS Lambda hat beim Einrichten der Lambda-Funktion eine unerwartete Amazon-EC2-Client-Ausnahme erhalten.

HTTP-Statuscode: 502

EFSIOException

Beim Lesen oder Schreiben in ein angeschlossenes Dateisystem ist ein Fehler aufgetreten.

HTTP-Statuscode: 410

EFSMountConnectivityException

Die Lambda-Funktion konnte keine Netzwerkverbindung zum konfigurierten Dateisystem herstellen.

HTTP-Statuscode: 408

EFSMountFailureException

Die Lambda-Funktion konnte das konfigurierte Dateisystem aufgrund eines Berechtigungs- oder Konfigurationsproblems nicht mounten.

HTTP Status Code: 403

EFSMountTimeoutException

Die Lambda-Funktion hat eine Netzwerkverbindung zum konfigurierten Dateisystem hergestellt, aber beim Mount-Vorgang ist das Zeitlimit überschritten.

HTTP-Statuscode: 408

ENILimitReachedException

AWS Lambda konnte keine Elastic-Network-Schnittstelle in der VPC erstellen, die als Teil der Lambda-Funktionskonfiguration angegeben wurde, da das Limit für Netzwerkschnittstellen erreicht wurde. Weitere Informationen finden Sie unter Lambda-Kontingente.

HTTP-Statuscode: 502

InvalidParameterValueException

Einer der Parameter in der Anfrage ist ungültig.

HTTP Status Code: 400

InvalidRequestContentException

Der Anforderungstext konnte nicht als JSON analysiert werden.

HTTP Status Code: 400

InvalidRuntimeException

Die angegebene Laufzeit oder Laufzeitversion wird nicht unterstützt.

HTTP-Statuscode: 502

InvalidSecurityGroupIDException

Die in der VPC-Konfiguration der Lambda-Funktion angegebene Sicherheitsgruppen-ID ist ungültig.

HTTP-Statuscode: 502

InvalidSubnetIDException

Die in der VPC-Konfiguration der Lambda-Funktion angegebene Subnetz-ID ist ungültig.

HTTP-Statuscode: 502

InvalidZipFileException

AWS Lambda konnte das Bereitstellungspaket nicht entpacken.

HTTP-Statuscode: 502

KMSAccessDeniedException

Lambda konnte die Umgebungsvariablen nicht entschlüsseln, da der AWS KMS-Zugriff verweigert wurde. Überprüfen Sie die KMS-Berechtigungen der Lambda-Funktion.

HTTP-Statuscode: 502

KMSDisabledException

Lambda konnte die Umgebungsvariablen nicht entschlüsseln, da das verwendete AWS KMS key deaktiviert ist. Überprüfen Sie die Einstellungen des KMS-Schlüssels der Lambda-Funktion.

HTTP-Statuscode: 502

KMSInvalidStateException

Lambda konnte die Umgebungsvariablen nicht entschlüsseln, da der Status des verwendeten AWS KMS key für Decrypt nicht gültig ist. Überprüfen Sie die KMS-Schlüsseleinstellungen der Funktion.

HTTP-Statuscode: 502

KMSNotFoundException

Lambda konnte die Umgebungsvariablen nicht entschlüsseln, da AWS KMS key nicht gefunden wurde. Überprüfen Sie die KMS-Schlüsseleinstellungen der Funktion.

HTTP-Statuscode: 502

RecursiveInvocationException

Lambda hat erkannt, dass Ihre Funktion in einer rekursiven Schleife mit anderen AWS-Ressourcen aufgerufen wird, und den Aufruf Ihrer Funktion gestoppt.

HTTP Status Code: 400

RequestTooLargeException

Die Anfragenutzlast hat das JSON-Eingabekontingent des Invoke-Anfragetexts überschritten. Weitere Informationen finden Sie unter Lambda-Kontingente.

HTTP-Statuscode: 413

ResourceConflictException

Die Ressource ist bereits vorhanden, oder ein anderer Vorgang ist im Gange.

HTTP-Statuscode: 409

ResourceNotFoundException

Die in der Anforderung angegebene Ressource ist nicht vorhanden.

HTTP Status Code: 404

ResourceNotReadyException

Die Funktion ist inaktiv und ihre VPC Verbindung ist nicht mehr verfügbar. Warten Sie, bis die VPC Verbindung wieder hergestellt wurde und versuchen Sie es erneut.

HTTP-Statuscode: 502

ServiceException

Beim Service AWS Lambda trat ein interner Fehler auf.

HTTP Status Code: 500

SnapStartException

Beim afterRestore()-Laufzeit-Hook ist ein Fehler aufgetreten. Weitere Informationen finden Sie in den Amazon- CloudWatch Protokollen.

HTTP Status Code: 400

SnapStartNotReadyException

Lambda initialisiert Ihre Funktion. Sie können die Funktion aufrufen, wenn sich der Funktionsstatus auf Active ändert.

HTTP-Statuscode: 409

SnapStartTimeoutException

Lambda konnte den Snapshot nicht innerhalb des Timeout-Limits wiederherstellen.

HTTP-Statuscode: 408

SubnetIPAddressLimitReachedException

AWS Lambda konnte den VPC-Zugriff für die Lambda-Funktion nicht einrichten, da eines oder mehrere konfigurierte Subnetze keine verfügbaren IP-Adressen haben.

HTTP-Statuscode: 502

TooManyRequestsException

Der Durchsatz einer Anforderung wurde überschritten. Weitere Informationen finden Sie unter Lambda-Kontingente.

HTTP-Statuscode: 429

UnsupportedMediaTypeException

Der Inhaltstyp des Invoke-Anforderungstaxts ist nicht JSON.

HTTP-Statuscode: 415

Weitere Informationen finden Sie unter:

Weitere Informationen zur Verwendung dieser API in einem der sprachspezifischen AWS-SDKs finden Sie unter: