Wie Lambda mit asynchronen Aufrufen umgeht - 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.

Wie Lambda mit asynchronen Aufrufen umgeht

Einige AWS -Services, wie Amazon Simple Storage Service (Amazon S3) und Amazon Simple Notification Service (AmazonSNS), rufen Funktionen asynchron auf, um Ereignisse zu verarbeiten. Sie können eine Lambda-Funktion auch asynchron aufrufen, indem Sie die AWS Command Line Interface (AWS CLI) oder eine der folgenden Optionen verwenden. AWS SDKs Wenn Sie eine Funktion asynchron aufrufen, warten Sie nicht auf eine Antwort aus dem Funktionscode. Sie übergeben das Ereignis an Lambda und Lambda erledigt den Rest. Sie können konfigurieren, wie Lambda mit Fehlern umgeht, und Aufrufdatensätze an eine nachgelagerte Ressource wie Amazon Simple Queue Service (AmazonSQS) oder Amazon EventBridge (EventBridge) senden, um Komponenten Ihrer Anwendung miteinander zu verketten.

Das folgende Diagramm zeigt Clients, die eine Lambda-Funktion asynchron aufrufen. Lambda stellt die Ereignisse in eine Warteschlange, bevor sie an die Funktion gesendet werden.

Clients rufen eine Funktion asynchron auf. Lambda stellt Ereignisse in die Warteschlange, bevor sie an die Funktion gesendet werden

Lambda platziert das Ereignis bei asynchronem Aufruf in eine Warteschlange und gibt eine Erfolgsantwort ohne zusätzliche Informationen zurück. Ein separater Prozess liest Ereignisse aus der Warteschlange und senden sie zu Ihrer Funktion.

Asynchrones Aufrufen einer Lambda-Funktion

Um eine Lambda-Funktion asynchron mit der AWS Command Line Interface (AWS CLI) oder einer der Funktionen aufzurufen AWS SDKs, setzen Sie den Aufruftypparameter auf. Event Das folgende Beispiel zeigt einen AWS CLI Befehl zum Aufrufen einer Funktion.

aws lambda invoke \ --function-name my-function \ --invocation-type Event \ --cli-binary-format raw-in-base64-out \ --payload '{ "key": "value" }' response.json

Die Ausgabe sollte folgendermaßen aussehen:

{ "StatusCode": 202 }

Die cli-binary-format Option ist erforderlich, wenn Sie AWS CLI Version 2 verwenden. Um dies zur Standardeinstellung zu machen, führen Sie aws configure set cli-binary-format raw-in-base64-out aus. Weitere Informationen finden Sie unter Von AWS CLI unterstützte globale Befehlszeilenoptionen im AWS Command Line Interface -Benutzerhandbuch für Version 2.

Die Ausgabedatei (response.json) enthält keine Informationen, wird bei der Ausführung dieses Befehls aber dennoch erstellt. Wenn Lambda das Ereignis nicht zur Warteschlange hinzufügen kann, erscheint in der Befehlsausgabe eine Fehlermeldung.