Ich möchte über eine AWS-Lambda-Funktion eine Nachricht zu einem Amazon Simple Notification Service (Amazon SNS)-Thema veröffentlichen.
Lösung
Gehe wie folgt vor, um mithilfe einer Lambda-Funktion eine Nachricht an ein Amazon SNS-Thema zu senden.
Hinweis: Das Beispiel in diesem Artikel verwendet eine Python-Laufzeit. Du kannst jedoch die bevorzugten Lambda-Laufzeiten verwenden.
-
Erstelle ein Amazon-SNS-Thema.
-
Eine Lambda-Funktion erstellen.
-
Stelle in der Lambda-Funktion sicher, dass die Lambda-Ausführungsrolle über Berechtigungen zum Veröffentlichen der SNS-Nachricht verfügt, die den folgenden ähneln:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublishSNSMessage",
"Effect": "Allow",
"Action": "sns:Publish",
"Resource": "arn:aws:sns:your-region:your-account-number:your-topic-name"
}
]
}
Hinweis: Ersetze your-region, your-account-number und your-topic-name durch die Variablen.
-
Wähle auf der Seite Lambda-Funktionen die Registerkarte Code. Kopiere anschließend in der Codequelle den folgenden Code für die Aktion Publish Boto3 und füge ihn in den Code-Editor ein:
import json
import boto3
client = boto3.client('sns')
def lambda_handler(event, context):
response = client.publish(TopicArn='arn:aws:sns:your-region:account-number:topic-name',Message="Test message")
print("Message published")
return(response)
-
Teste die Lambda-Funktion.
Wenn die Lambda-Funktion mit einer Amazon Virtual Private Cloud (Amazon VPC) verbunden ist, führe eine der folgenden Optionen durch:
Relevante Informationen
Warum erhalte ich einen Autorisierungsfehler, wenn ich versuche, meine Lambda-Funktion für mein Amazon-SNS-Thema zu abonnieren?