Wie kann ich mithilfe einer Lambda-Funktion eine Nachricht an ein Amazon-SNS-Thema senden?

Lesedauer: 2 Minute
0

Ich möchte über eine AWS-Lambda-Funktion eine Nachricht zu einem Amazon Simple Notification Service (Amazon SNS)-Thema veröffentlichen.

Lösung

Gehen Sie 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; Sie können jedoch Ihre bevorzugten Lambda-Laufzeiten verwenden.

1.    Erstellen Sie ein Amazon-SNS-Thema.

2.    Erstellen Sie eine Lambda-Funktion.

3.    Stellen Sie in der Lambda-Funktion sicher, dass die Lambda-Ausführungsrolle über Berechtigungen zum Veröffentlichen der SNS-Nachricht verfügt, die den folgenden ähneln:

Hinweis: Ersetzen Sie Ihre Region, Ihre Kontonummer und Ihren Themennamen durch Ihre Variablen.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PublishSNSMessage",
      "Effect": "Allow",
      "Action": "sns:Publish",
      "Resource": "arn:aws:sns:<your-region>:<your-account-number>:<your-topic-name>"
    }
  ]
}

4.     Wählen Sie die Registerkarte Code aus. Kopieren Sie anschließend in der Code source (Codequelle) den folgenden Code für die Aktion Publish Boto3 (Boto3 veröffentlichen) und fügen Sie 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:<region>:<account-number>:<topic-name>',Message="Test message")
   print("Message published")
   return(response)

5.    Testen Sie Ihre Lambda-Funktion.

Wenn Ihre Lambda-Funktion mit einer Amazon Virtual Private Cloud (Amazon VPC) verbunden ist, führen Sie eine der folgenden Optionen durch:

Wenn Ihre Lambda-Funktion einen Internetzugriff erfordert, stellen Sie sicher, dass Sie den Internetzugriff gewähren. Weitere Informationen finden Sie unter Wie gewähre ich einer Lambda-Funktion, die mit einer Amazon VPC verbunden ist, Internetzugriff?

- oder -

Erstellen Sie für private Netzwerke einen Amazon-VPC-Endpunkt für Amazon SNS in derselben VPC. Weitere Informationen finden Sie unter Erstellen eines Amazon VPC Endpunkts für Amazon SNS.

Relevante Informationen

Warum erhalte ich einen Autorisierungsfehler, wenn ich versuche, meine Lambda-Funktion für mein Amazon-SNS-Thema zu abonnieren?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr