Asynchroner Aufruf - 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.

Asynchroner Aufruf

Mehrere AWS-Services, wie Amazon Simple Storage Service (Amazon S3) und Amazon Simple Notification Service (Amazon SNS), rufen Funktionen asynchron auf, um Ereignisse zu verarbeiten. 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 Fehler behandelt, und Aufrufdatensätze an eine nachgelagerte Ressource wie Amazon Simple Queue Service (Amazon SQS) oder Amazon EventBridge (EventBridge) senden, um Komponenten Ihrer Anwendung miteinander zu verketten.

Wie Lambda asynchrone Aufrufe verarbeitet

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 die Ereignisse in eine 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. Um eine Funktion asynchron aufzurufen, stellen Sie den Parameter des Aufrufstyps auf ei Event.

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

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.

{ "StatusCode": 202 }

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.

Lambda verwaltet die asynchrone Ereigniswarteschlange der Funktion und unternimmt bei Fehlern Wiederholungsversuche. Wenn die Funktion einen Fehler zurückgibt, versucht Lambda zwei weitere Male, sie auszuführen. Dabei wird eine Minute lang zwischen den ersten zwei Versuchen und zwei Minuten lang zwischen dem zweiten und dem dritten Versuch gewartet. Zu Funktionsfehlern gehören Fehler, die vom Code der Funktion zurückgegeben werden, sowie Fehler, die von der Laufzeit des Fehlers zurückgegeben werden, wie z. B. Timeouts.

Wenn für die Funktion nicht genügend Gleichzeitigkeit für die Verarbeitung aller Ereignisse verfügbar ist, werden weitere Anforderungen gedrosselt. Bei Drosselungsfehlern (429) und Systemfehlern (500-Serie) sendet Lambda das Ereignis zur Warteschlange zurück und versucht bis zu 6 Stunden lang, die Funktion erneut auszuführen. Das Wiederholungsintervall erhöht sich exponentiell von 1 Sekunde nach dem ersten Versuch auf maximal 5 Minuten. Lambda stellt viele Einträge in die Warteschlange, erhöht das Wiederholungsintervall und reduziert die Rate, mit der es Ereignisse aus der Warteschlange liest.

Selbst wenn Ihre Funktion keinen Fehler zurückgibt, ist es möglich, dass sie dasselbe Ereignis mehrmals von Lambda erhält, da die Warteschlange selbst „letztendliche Konsistenz“ ist. Wenn die Funktion mit eingehenden Ereignissen nicht Schritt halten kann, kann es auch vorkommen, dass Ereignisse aus der Warteschlange gelöscht werden, ohne zur Funktion gesendet zu werden. Stellen Sie sicher, dass Ihr Funktionscode doppelte Ereignisse ordnungsgemäß verarbeitet und dass Sie über genügend Gleichzeitigkeit zur Verarbeitung aller Aufrufe verfügen.

Wenn die Warteschlange sehr lang ist, können neue Ereignisse veraltet sein, bevor Lambda sie an Ihre Funktion senden kann. Wenn ein Ereignis abläuft oder bei ihm alle Verarbeitungsversuche fehlschlagen, wird es von Lambda verworfen. Sie können die Fehlerbehandlung für eine Funktion konfigurieren, um die Anzahl der Wiederholungsversuche zu reduzieren, die Lambda durchführt, oder um unverarbeitete Ereignisse schneller zu verwerfen.

Sie können Lambda auch so konfigurieren, dass ein Aufrufdatensatz an einen anderen Service gesendet wird. Lambda unterstützt die folgenden Ziele für den asynchronen Aufruf. Beachten Sie, dass SQS-FIFO-Warteschlangen und SNS-FIFO-Themen nicht unterstützt werden.

  • Amazon SQS – Eine standardmäßige SQS-Warteschlange.

  • Amazon SNS – Ein SNS-Standardthema.

  • AWS Lambda – Eine Lambda-Funktion.

  • Amazon EventBridge – Ein EventBridge Event Bus.

Der Aufrufdatensatz enthält Details zur Anforderung und Antwort im JSON-Format. Sie können separate Ziele für Ereignisse konfigurieren, die erfolgreich verarbeitet werden, und für Ereignisse, bei denen alle Verarbeitungsversuche fehlschlagen. Alternativ können Sie eine Amazon-SQS-Standardwarteschlange oder ein Amazon-SNS-Standardthema als Warteschlange für unzustellbare Nachrichten für verworfene Ereignisse konfigurieren. Für Warteschlangen für unzustellbare Nachrichten sendet Lambda nur den Inhalt des Ereignisses ohne Details zur Antwort.

Wenn Lambda keinen Datensatz an ein von Ihnen konfiguriertes Ziel senden kann, sendet es eine DestinationDeliveryFailures Metrik an Amazon CloudWatch. Dies kann passieren, wenn Ihre Konfiguration einen nicht unterstützten Zieltyp enthält, z. B. eine Amazon-SQS-FIFO-Warteschlange oder ein Amazon-SNS-FIFO-Thema. Zustellungsfehler können auch aufgrund von Berechtigungsfehlern und Größenbeschränkungen auftreten. Weitere Informationen zu Lambda-Aufrufmetriken finden Sie unter Aufrufmetriken.

Anmerkung

Um zu verhindern, dass eine Funktion ausgelöst wird, können Sie die reservierte Parallelität der Funktion auf Null setzen. Wenn Sie die reservierte Parallelität für eine asynchron aufgerufene Funktion auf Null setzen, sendet Lambda sofort und ohne Wiederholungsversuche alle Ereignisse ohne erneute Versuche an die konfigurierte Warteschlange für unzustellbare Nachrichten oder an das Ereignisziel bei Fehlern. Um Ereignisse zu verarbeiten, die gesendet wurden, während die reservierte Parallelität auf Null gesetzt war, müssen Sie die Ereignisse aus der Warteschlange für unzustellbare Nachrichten oder dem Ereignisziel bei Fehlern verarbeiten.

Konfigurieren der Fehlerbehandlung für den asynchronen Aufruf

Verwenden Sie die Lambda-Konsole, um Einstellungen für die Fehlerbehandlung für eine Funktion, eine Version oder einen Alias zu konfigurieren.

So konfigurieren Sie die Fehlerbehandlung
  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Wählen Sie eine Funktion aus.

  3. Wählen Sie „Konfiguration“ und dann „Asynchroner Aufruf“ aus.

  4. Wählen Sie unter Asynchronous invocation (Asynchroner Aufruf) die Option Edit (Bearbeiten).

  5. Konfigurieren Sie die folgenden Einstellungen.

    • Maximales Alter des Ereignisses – Die maximale Zeitspanne, die Lambda ein Ereignis in der Warteschlange für asynchrone Ereignisse behält (bis zu 6 Stunden).

    • Wiederholversuche – Die Anzahl der Wiederholungen, die Lambda es erneut versucht, wenn die Funktion einen Fehler zurückgibt (zwischen 0 und 2).

  6. Wählen Sie Save aus.

Wenn ein Aufrufereignis das maximale Alter überschreitet oder alle Wiederholversuche fehlschlagen, wird es von Lambda verworfen. Um eine Kopie der verworfenen Ereignisse beizubehalten, konfigurieren Sie ein Ziel für fehlgeschlagene Ereignisse.

Konfigurieren von Zielen für den asynchronen Aufruf

Um Datensätze der asynchronen Aufrufe beizubehalten, fügen Sie Ihrer Funktion ein Ziel hinzu. Sie können wählen, ob erfolgreiche Aufrufe oder fehlgeschlagene Aufrufe an ein Ziel gesendet werden sollen. Jede Funktion kann mehrere Ziele haben, sodass Sie separate Ziele für erfolgreiche und fehlgeschlagene Ereignisse konfigurieren können. Jeder Datensatz, der an das Ziel gesendet wird, ist ein JSON-Dokument mit Details zum Aufruf. Wie Einstellungen zur Fehlerbehandlung können Sie Ziele für eine Funktion, eine Funktionsversion oder einen Alias konfigurieren.

Anmerkung

Sie können auch Aufzeichnungen über fehlgeschlagene Aufrufe für bestimmte Arten der Zuordnung von Ereignisquellen speichern. Weitere Informationen finden Sie unter Konfigurieren von Zielen für Aufrufe zur Zuordnung von Ereignisquellen.

In der folgenden Tabelle werden die unterstützten Ziele für Datensätze der asynchronen Aufrufen aufgelistet. Damit Lambda erfolgreich Datensätze an das von Ihnen ausgewählte Ziel senden kann, stellen Sie sicher, dass die Ausführungsrolle Ihrer Funktion auch die entsprechenden Berechtigungen enthält. In der Tabelle wird auch beschrieben, wie jeder Zieltyp den JSON-Aufrufdatensatz empfängt.

Zieltyp Erforderliche Berechtigung Zielspezifisches JSON-Format

Amazon-SQS-Warteschlange

sqs:SendMessage

Lambda übergibt den Aufrufdatensatz als Message an das Ziel.

Amazon SNS-Thema

sns:Publish

Lambda übergibt den Aufrufdatensatz als Message an das Ziel.

Lambda-Funktion

InvokeFunction

Lambda übergibt den Aufrufdatensatz als Nutzlast in der Funktion.

EventBridge

-Ereignisse:PutEvents

  • Lambda übergibt den Aufrufdatensatz als detail im PutEvents Aufruf.

  • Der Wert für das source-Ereignisfeld ist lambda.

  • Der Wert für das detail-type-Ereignisfeld ist entweder „Lambda Function Invocation Result – Success“ (Ergebnis des Lambda-Funktionsaufrufs: Erfolgreich) oder „Lambda Function Invocation Result – Failure“ (Ergebnis des Lambda-Funktionsaufrufs: Fehler).

  • Das resource-Ereignisfeld enthält die Amazon Resource Names (ARNs) für Funktion und Ziel.

  • Weitere Ereignisfelder finden Sie unter Amazon- EventBridge Ereignisse.

Das folgende Beispiel zeigt einen Aufrufdatensatz für ein Ereignis, bei dem drei Verarbeitungsversuche aufgrund eines Funktionsfehlers fehlgeschlagen sind. Der Aufrufdatensatz enthält Details zum Ereignis, zur Antwort und zu dem Grund, warum der Datensatz gesendet wurde.

{ "version": "1.0", "timestamp": "2019-11-14T18:16:05.568Z", "requestContext": { "requestId": "e4b46cbf-b738-xmpl-8880-a18cdf61200e", "functionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:$LATEST", "condition": "RetriesExhausted", "approximateInvokeCount": 3 }, "requestPayload": { "ORDER_IDS": [ "9e07af03-ce31-4ff3-xmpl-36dce652cb4f", "637de236-e7b2-464e-xmpl-baf57f86bb53", "a81ddca6-2c35-45c7-xmpl-c3a03a31ed15" ] }, "responseContext": { "statusCode": 200, "executedVersion": "$LATEST", "functionError": "Unhandled" }, "responsePayload": { "errorMessage": "RequestId: e4b46cbf-b738-xmpl-8880-a18cdf61200e Process exited before completing request" } }

In den folgenden Schritten wird beschrieben, wie Sie ein Ziel für eine Funktion mithilfe der Lambda-Konsole konfigurieren.

So konfigurieren Sie ein Ziel für Datensätze der asynchronen Aufrufe
  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Wählen Sie eine Funktion aus.

  3. Wählen Sie unter Function overview (Funktionsübersicht) die Option Add destination (Ziel hinzufügen).

  4. Wählen Sie unter Source (Quelle) die Option Asynchronous invocation (Asynchroner Aufruf).

  5. Wählen Sie unter Condition (Bedingung) eine der folgenden Optionen aus:

    • Bei Fehler – Es wird ein Datensatz gesendet, wenn das Ereignis alle Verarbeitungsversuche ausschöpft oder das maximale Alter überschreitet.

    • Bei Erfolg – Es wird ein Datensatz gesendet, wenn die Funktion einen asynchronen Aufruf erfolgreich verarbeitet.

  6. Wählen Sie unter Destination type (Zieltyp) den Ressourcentyp aus, der den Aufrufdatensatz empfängt.

  7. Wählen Sie unter Destination (Ziel) eine Ressource aus.

  8. Wählen Sie Save aus.

Wenn ein Aufruf mit der Bedingung übereinstimmt, sendet Lambda ein JSON-Dokument mit Details zum Aufruf an das Ziel.

Zielspezifisches JSON-Format
  • Für Amazon SQS und Amazon SNS (SnsDestination und SqsDestination) wird der Aufrufdatensatz als Message an das Ziel übergeben.

  • Für Lambda (LambdaDestination) wird der Aufrufdatensatz als Nutzlast an die Funktion übergeben.

  • Für EventBridge (EventBridgeDestination) wird der Aufrufdatensatz als detail im PutEvents Aufruf übergeben. Der Wert für das source-Ereignisfeld ist lambda. Der Wert für das detail-type-Ereignisfeld ist entweder Lambda Function Invocation Result – Success (Ergebnis des Lambda-Funktionsaufrufs: Erfolgreich) oder Lambda Function Invocation Result – Failure (Ergebnis des Lambda-Funktionsaufrufs: Fehler). Das resource-Ereignisfeld enthält die Amazon Resource Names (ARNs) für Funktion und Ziel. Weitere Ereignisfelder finden Sie unter Amazon- EventBridge Ereignisse.

Das folgende Beispiel zeigt einen Aufrufdatensatz für ein Ereignis, bei dem drei Verarbeitungsversuche aufgrund eines Funktionsfehlers fehlgeschlagen sind.

Beispiel Aufrufdatensatzglauben
{ "version": "1.0", "timestamp": "2019-11-14T18:16:05.568Z", "requestContext": { "requestId": "e4b46cbf-b738-xmpl-8880-a18cdf61200e", "functionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:$LATEST", "condition": "RetriesExhausted", "approximateInvokeCount": 3 }, "requestPayload": { "ORDER_IDS": [ "9e07af03-ce31-4ff3-xmpl-36dce652cb4f", "637de236-e7b2-464e-xmpl-baf57f86bb53", "a81ddca6-2c35-45c7-xmpl-c3a03a31ed15" ] }, "responseContext": { "statusCode": 200, "executedVersion": "$LATEST", "functionError": "Unhandled" }, "responsePayload": { "errorMessage": "RequestId: e4b46cbf-b738-xmpl-8880-a18cdf61200e Process exited before completing request" } }

Der Aufrufdatensatz enthält Details zum Ereignis, zur Antwort und zu dem Grund, warum der Datensatz gesendet wurde.

Zurückverfolgen von Anforderungen zu Zielen

Sie können AWS X-Ray verwenden, um eine verbundene Ansicht jeder Anforderung zu sehen, während sie in die Warteschlange gestellt, von einer Lambda-Funktion verarbeitet und an den Zielservice übergeben wird. Wenn Sie X-Ray-Tracing für eine Funktion oder einen Service aktivieren, der eine Funktion aufruft, fügt Lambda der Anforderung einen X-Ray-Header hinzu und übergibt den Header an den Zielservice. Ablaufverfolgungen von Upstream-Services werden automatisch mit Ablaufverfolgungen von Downstream-Lambda-Funktionen und Zielservices verknüpft, wodurch eine end-to-end Ansicht der gesamten Anwendung erstellt wird. Weitere Informationen zum Tracing finden Sie unter Verwenden von AWS Lambda mit AWS X-Ray.

Konfigurations-API für asynchrone Aufrufe

Verwenden Sie die folgenden API-Operationen, um asynchrone Aufrufeinstellungen mit der AWS CLI oder dem AWS SDK zu verwalten.

Verwenden Sie den Befehl AWS CLI, um den asynchronen Aufruf mit der zu konfigurierenput-function-event-invoke-config. Im folgenden Beispiel wird eine Funktion mit einem maximalen Ereignisalter von 1 Stunde und ohne Wiederholversuche konfiguriert.

aws lambda put-function-event-invoke-config --function-name error \ --maximum-event-age-in-seconds 3600 --maximum-retry-attempts 0

Die Ausgabe sollte folgendermaßen aussehen:

{ "LastModified": 1573686021.479, "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:error:$LATEST", "MaximumRetryAttempts": 0, "MaximumEventAgeInSeconds": 3600, "DestinationConfig": { "OnSuccess": {}, "OnFailure": {} } }

Der Befehl put-function-event-invoke-config überschreibt alle vorhandenen Konfigurationen für die Funktion, die Version oder den Alias. Um eine Option zu konfigurieren, ohne andere zurückzusetzen, verwenden Sie update-function-event-invoke-config. Im folgenden Beispiel wird Lambda so konfiguriert, dass ein Datensatz an eine SQS-Standardwarteschlange namens destination gesendet wird, wenn ein Ereignis nicht verarbeitet werden kann.

aws lambda update-function-event-invoke-config --function-name error \ --destination-config '{"OnFailure":{"Destination": "arn:aws:sqs:us-east-2:123456789012:destination"}}'

Die Ausgabe sollte folgendermaßen aussehen:

{ "LastModified": 1573687896.493, "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:error:$LATEST", "MaximumRetryAttempts": 0, "MaximumEventAgeInSeconds": 3600, "DestinationConfig": { "OnSuccess": {}, "OnFailure": { "Destination": "arn:aws:sqs:us-east-2:123456789012:destination" } } }

Warteschlangen für unzustellbare Nachrichten

Als eine Alternativ zu einem Zielort bei Ausfall können Sie Ihre Funktion mit einer Warteschlangen für unzustellbare Nachrichten konfigurieren, um verworfene Ereignisse zur weiteren Verarbeitung zu speichern. Eine Warteschlange für unzustellbare Nachrichten fungiert genauso wie ein Ziel bei Ausfall, da sie verwendet wird, wenn alle Verarbeitungsversuche eines Ereignisses fehlschlagen oder ein Ereignis abläuft, ohne verarbeitet zu werden. Da eine Warteschlange für unzustellbare Nachrichten jedoch Teil der versionsspezifischen Konfiguration einer Funktion ist, ist sie gesperrt, wenn Sie eine Version veröffentlichen. Ausfallziele unterstützen auch zusätzliche Ziele und enthalten Details zur Reaktion der Funktion im Aufrufdatensatz.

Um Ereignisse in einer Warteschlange für unzustellbare Nachrichten erneut zu verarbeiten, können Sie sie als Ereignisquelle für Ihre Lambda-Funktion festlegen. Alternativ können Sie die Ereignisse manuell abrufen.

Sie können eine Amazon-SQS-Standardwarteschlange oder ein Amazon-SNS-Standardthema für Ihre Warteschlange für unzustellbare Nachrichten auswählen. SQS-FIFO-Warteschlangen und SNS-FIFO-Themen werden nicht unterstützt. Wenn Sie über keine Warteschlangen oder Themen verfügen, erstellen Sie sie. Wählen Sie den Zieltyp aus, der Ihrem Anwendungsfall entspricht.

  • Amazon-SQS-Warteschlange – Eine Warteschlange nimmt fehlgeschlagene Ereignisse auf, bis sie abgerufen werden. Wählen Sie eine Amazon SQS-Standardwarteschlange aus, wenn Sie erwarten, dass eine einzelne Entität, z. B. eine Lambda-Funktion oder CloudWatch ein Alarm, das fehlgeschlagene Ereignis verarbeitet. Weitere Informationen finden Sie unter Verwenden von Lambda mit Amazon SQS.

    Erstellen Sie in der Amazon-SQS-Konsole eine Warteschlange.

  • Amazon-SNS-Thema – Ein Thema leitet fehlgeschlagene Ereignisse an eine oder mehrere Ziele. Wählen Sie ein Amazon-SNS-Standardthema aus, wenn Sie erwarten, dass mehrere Entitäten auf ein fehlgeschlagenes Ereignis reagieren. Sie können beispielsweise ein Thema so konfigurieren, dass Ereignisse an eine E-Mail-Adresse, eine Lambda-Funktion und/oder einen HTTP-Endpunkt gesendet werden. Weitere Informationen finden Sie unter Verwendung AWS Lambda mit Amazon SNS.

    Erstellen Sie ein Thema in der Amazon-SNS-Konsole.

Um Ereginisse an eine Warteschlange oder an ein Thema zu senden, benötigt Ihre Funktion zusätzliche Berechtigungen. Fügen Sie eine Richtlinie mit den erforderlichen Berechtigungen zur Ausführungsrolle Ihrer Funktion hinzu.

Wenn die Zielwarteschlange oder das Thema mit einem vom Kunden verwalteten Schlüssel verschlüsselt ist, muss die Ausführungsrolle auch ein Benutzer in der ressourcenbasierten Richtliniedes Schlüssels sein.

Nachdem das Ziel erstellt und die Ausführungsrolle Ihrer Funktion aktualisiert wurde, fügen Sie die Warteschlange für unzustellbare Nachrichten zu Ihrer Funktion hinzu. Sie können mehrere Funktionen zum Senden von Ereignissen an dasselbe Ziel konfigurieren.

So konfigurieren Sie eine Warteschlange für unzustellbare Nachrichten
  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Wählen Sie eine Funktion aus.

  3. Wählen Sie „Konfiguration“ und dann „Asynchroner Aufruf“ aus.

  4. Wählen Sie unter Asynchronous invocation (Asynchroner Aufruf) die Option Edit (Bearbeiten).

  5. Legen Sie die DLQ-Ressource auf Amazon SQS oder Amazon SNS fest.

  6. Wählen Sie die Ziel-Warteschlange oder das Ziel-Thema aus.

  7. Wählen Sie Save aus.

Verwenden Sie den Befehl AWS CLI, um eine Warteschlange für unzustellbare Nachrichten mit der zu konfigurierenupdate-function-configuration.

aws lambda update-function-configuration --function-name my-function \ --dead-letter-config TargetArn=arn:aws:sns:us-east-2:123456789012:my-topic

Lambda sendet das Ereignis mit zusätzlichen Informationen in den Attributen an die Warteschlange für unzustellbare Nachrichten. Sie können anhand dieser Informationen den von der Funktion zurückgegebenen Fehler erkennen oder das Ereignis mit Protokollen oder einer AWS X-Ray -Ablaufverfolgung korrelieren.

Nachrichtenattribute der Warteschlange für unzustellbare Nachrichten
  • RequestID (Zeichenfolge) – Die ID der Aufrufanforderung. Anforderungs-IDs erscheinen in Funktionsprotokollen. Sie können das X-Ray-SDK auch verwenden, um die Anforderungs-ID für ein Attribut in der Ablaufverfolgung aufzuzeichnen. Anschließend können Sie anhand der Anforderungs-ID in der X-Ray-Konsole nach Spuren suchen. Ein Beispiel finden Sie unter Fehlerprozessor-Beispiel.

  • ErrorCode (Nummer) – Der HTTP-Statuscode.

  • ErrorMessage (Zeichenfolge) – Die ersten 1 KB der Fehlermeldung.


        Ereignisattribute der Warteschlange für unzustellbare Nachrichten in der Amazon-SQS-Konsole.

Wenn Lambda keine Nachricht an die Warteschlange für unzustellbare Nachrichten senden kann, löscht es das Ereignis und gibt die DeadLetterErrors Metrik aus. Dies kann bei mangelnden Berechtigungen passieren oder wenn die Gesamtgröße der Nachricht den Grenzwert der Zielwarteschlange oder des Ziel-Themas überschreitet. Nehmen wir zum Beispiel an, dass eine Amazon-SNS-Benachrichtigung mit einem Text von fast 256 KB eine Funktion auslöst, die zu einem Fehler führt. In diesem Fall können die Ereignisdaten, die Amazon SNS hinzufügt, in Kombination mit den Attributen, die Lambda hinzufügt, dazu führen, dass die Nachricht die maximale Größe überschreitet, die in der Warteschlange für unzustellbare Nachrichten zulässig ist.

Wenn Sie Amazon SQS als Ereignisquelle verwenden, konfigurieren Sie eine Warteschlange für unzustellbare Nachrichten für die Amazon-SQS-Warteschlange selbst und nicht für die Lambda-Funktion. Weitere Informationen finden Sie unter Verwenden von Lambda mit Amazon SQS.