Verwendung von AWS Lambda mit Amazon SNS - AWS Lambda

Verwendung von AWS Lambda mit Amazon SNS

Verwenden Sie eine Lambda-Funktion, um Amazon-Simple-Notification-Service-(Amazon-SNS)-Benachrichtigungen zu verarbeiten. Amazon SNS unterstützt Lambda-Funktionen als Ziel für Nachrichten, die an ein Thema gesendet werden. Sie können Ihre Funktion für Themen in demselben Konto oder in anderen AWS-Konten abonnieren.

Amazon SNS ruft Ihre Funktion asynchron mit einem Ereignis auf, das eine Nachricht und Metadaten enthält.

Beispiel Amazon-SNS-Nachrichtenereignis
{ "Records": [ { "EventVersion": "1.0", "EventSubscriptionArn": "arn:aws:sns:us-east-1:123456789012:sns-lambda:21be56ed-a058-49f5-8c98-aedd2564c486", "EventSource": "aws:sns", "Sns": { "SignatureVersion": "1", "Timestamp": "2019-01-02T12:45:07.000Z", "Signature": "tcc6faL2yUC6dgZdmrwh1Y4cGa/ebXEkAi6RibDsvpi+tE/1+82j...65r==", "SigningCertUrl": "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-ac565b8b1a6c5d002d285f9598aa1d9b.pem", "MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e", "Message": "Hello from SNS!", "MessageAttributes": { "Test": { "Type": "String", "Value": "TestString" }, "TestBinary": { "Type": "Binary", "Value": "TestBinary" } }, "Type": "Notification", "UnsubscribeUrl": "https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:123456789012:test-lambda:21be56ed-a058-49f5-8c98-aedd2564c486", "TopicArn":"arn:aws:sns:us-east-1:123456789012:sns-lambda", "Subject": "TestInvoke" } } ] }

Bei asynchronen Aufrufe legt Lambda die Nachricht in eine Warteschlange und verarbeitet Wiederholungen. Wenn Amazon SNS Lambda nicht erreichen kann, oder die Nachricht abgelehnt wird, wiederholt Amazon SNS den Vorgang in zunehmenden Intervallen über mehrere Stunden. Weitere Details finden Sie unter Zuverlässigkeit in den häufig gestellten Fragen zu Amazon SNS.

Um kontoübergreifende Amazon-SNS-Bereitstellung an Lambda durchzuführen, müssen Sie Amazon SNS autorisieren, um Ihre Lambda-Funktion aufzurufen. Im Gegenzug muss Amazon SNS dem AWS-Konto mit der Lambda-Funktion erlauben, das Amazon-SNS-Thema zu abonnieren. Wenn das Amazon-SNS-Thema sich beispielsweise in Konto A und die Lambda-Funktion in Konto B befindet, müssen beide Konten sich gegenseitig Berechtigungen erteilen, um auf die jeweiligen Ressourcen zuzugreifen. Da nicht alle Optionen zum Einrichten von kontoübergreifenden Berechtigungen in der AWS Management Console verfügbar sind, müssen Sie AWS Command Line Interface (AWS CLI) für die Einrichtung verwenden.

Weitere Informationen finden Sie unter Fanout zu Lambda-Funktionen im Entwicklerhandbuch für Amazon Simple Notification Service.

Eingabetypen für Amazon-SNS-Ereignisse

Für Beispiele für Eingabetypen für Amazon-SNS-Ereignisse in Java, .NET und Go, siehe Folgendes im AWS GitHub-Repository: