Aufrufen einer Lambda-Funktion - Amazon Simple Email Service

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.

Aufrufen einer Lambda-Funktion

Die Lambda-Aktion ruft Ihren Code über eine Lambda-Funktion auf und benachrichtigt Sie optional über Amazon SNS. Diese Aktion umfasst die folgenden Optionen und Anforderungen.

Optionen
  • Lambda-Funktion – ARN der Lambda-Funktion. Ein Beispiel für den ARN einer Lambda-Funktion ist arn:aws:lambda:us-east-1:account-id:function:MyFunction.

  • Invocation type – Der Aufruftyp der Lambda-Funktion. Eine Aufruftyp von RequestResponse bedeutet, dass die Ausführung der Funktion zu einer sofortigen Reaktion führt. Eine Aufruftyp Event (Ereignis) bedeutet, dass die Funktion asynchron aufgerufen wird. Wir empfehlen, den Aufruftyp Event (Ereignis) zu verwenden, es sei denn, für Ihren Anwendungsfall ist die synchrone Ausführung notwendig.

    Für den Aufruf von RequestResponse gibt es eine Zeitverzögerung von 30 Sekunden.

    Weitere Informationen finden Sie unter Aufrufen von Lambda mit Step Functions im AWS Lambda-Entwicklerhandbuch.

  • SNS-Thema – Der Name oder ARN des Amazon-SNS-Themas, das benachrichtigt werden soll, wenn die angegebene Lambda-Funktion ausgelöst wird. Ein ARN eines Amazon-SNS-Themas ist beispielsweise arn:aws:sns:us-east-1:123456789012:MyTopic. Weitere Informationen finden Sie unter Amazon SNS-Thema anlegen im Amazon Simple Notification Service-Entwicklerhandbuch.

Voraussetzungen
  • Die von Ihnen ausgewählte Lambda-Funktion muss sich in derselben AWS-Region befinden wie der Amazon-SES-Endpunkt, den Sie zum Empfangen von E-Mails verwenden.

  • Das Amazon-SNS-Thema, das Sie auswählen, muss sich in derselben AWS-Region wie der Amazon-SES-Endpunkt befinden, den Sie zum Empfangen von E-Mails verwenden.

Schreiben Ihrer Lambda-Funktion

Zum Verarbeiten Ihrer E-Mail kann Ihre Lambda-Funktion asynchron aufgerufen werden (d. h. mit dem Event-Aufruftyp). Das an Ihre Lambda-Funktion übergebene "Event"-Objekt enthält Metadaten zum eingehenden E-Mail-Ereignis. Sie können auch die Metadaten für den Zugriff auf den Nachrichteninhalt aus Ihrem Amazon-S3-Bucket verwenden.

Wenn Sie den Nachrichtenfluss wirklich kontrollieren möchten, muss Ihre Lambda-Funktion synchron aufgerufen werden (d. h. mit dem RequestResponse-Aufruftyp) und Ihre Lambda-Funktion muss die callback Methode mit zwei Argumenten aufrufen: Das erste Argument lautet null und das zweite ist eine disposition-Eigenschaft, die auf STOP_RULE, STOP_RULE_SET oder CONTINUE eingestellt ist. Wenn das zweite Argument null ist oder keine gültige disposition-Eigenschaft besitzt, wird der Nachrichtenfluss fortgesetzt und weitere Aktionen und Regeln werden verarbeitet. Dies entspricht dem Ablauf von CONTINUE.

Sie können beispielsweise den Empfangsregelsatz stoppen, indem Sie die folgende Zeile an das Ende des Lambda-Funktionscodes setzen:

callback( null, { "disposition" : "STOP_RULE_SET" });

AWS Lambda-Codebeispiele finden Sie unter Beispiele für Lambda-Funktionen. Beispiele für allgemeine Anwendungsfälle finden Sie unter Beispielanwendungsfälle.

Eingabeformat

Amazon SES übergibt Informationen an die Lambda Funktion im JSON-Format. Das Objekt auf oberster Ebene enthält ein Records-Array, das mit Eigenschaften eventSource, eventVersion und ses gefüllt ist. Das ses-Objekt enthält receipt- und mail-Objekte, die das gleiche Format wie die in Benachrichtigungsinhalte beschriebenen Amazon-SNS-Benachrichtigungen aufweisen.

Die Daten, die Amazon SES an Lambda übergibt, enthalten Metadaten zur Nachricht sowie mehrere E-Mail-Header. Sie enthalten jedoch nicht den Text der Nachricht.

Im Folgenden finden Sie eine allgemeine Übersicht über die Struktur der Eingabe, die Amazon SES für die Lambda-Funktion bereitstellt.

{ "Records": [ { "eventSource": "aws:ses", "eventVersion": "1.0", "ses": { "receipt": { <same contents as SNS notification> }, "mail": { <same contents as SNS notification> } } } ] }

Return values

Ihre Lambda-Funktion kann den Nachrichtenfluss kontrollieren, indem einer der folgenden Werte zurückgegeben wird:

  • STOP_RULE – Es werden keine weiteren Aktionen in der aktuellen Empfangsregel, jedoch weitere Empfangsregeln verarbeitet.

  • STOP_RULE_SET – Es werden keine weiteren Aktionen oder Empfangsregeln verarbeitet.

  • CONTINUE oder ein anderer ungültiger Wert – Das bedeutet, dass weitere Aktionen und Empfangsregeln verarbeitet werden können.

Die folgenden Themen behandeln Beispiele für eingehende E-Mail-Ereignisse, Beispiele für allgemeine Anwendungsfälle undAWS Lambda-Codebeispiele