Direkt zum Inhalt

Wie verwende ich eine Lambda-Funktion, um eine Nachricht zu einem Amazon SNS-Thema zu veröffentlichen?

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

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.

  1. Erstelle ein Amazon-SNS-Thema.

  2. Eine Lambda-Funktion erstellen.

  3. 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.

  4. 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)
    
  5. 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?

AWS OFFICIALAktualisiert vor einem Jahr