Passer au contenu

Comment utiliser une fonction Lambda pour publier un message dans une rubrique Amazon SNS ?

Lecture de 2 minute(s)
0

Je souhaite publier un message dans une rubrique Amazon Simple Notification Service (Amazon SNS) à partir d'une fonction AWS Lambda.

Résolution

Suivez ces étapes pour envoyer un message à une rubrique Amazon SNS à l'aide d'une fonction Lambda.

Remarque : L'exemple présenté dans cet article utilise un environnement d'exécution Python, mais vous pouvez également utiliser vos environnements d'exécution Lambda préférés.

  1. Créez une rubrique Amazon SNS.

  2. Créez une fonction Lambda.

  3. À partir de la fonction Lambda, assurez-vous que le rôle d'exécution Lambda dispose des autorisations nécessaires pour publier le message SNS, comme suit :

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

    Remarque : Remplacez les paramètres your-region, your-account-number et your-topic-name par vos variables.

  4. Sur la page Fonctions Lambda, choisissez l'onglet Code. Puis, dans Code source, copiez et collez le code suivant correspondant à l'action Publier Boto3 dans l'éditeur de code :

    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. Testez votre fonction Lambda.

Si votre fonction Lambda est connectée à un Amazon Virtual Private Cloud (Amazon VPC), effectuez l'une des opérations suivantes :

Informations connexes

Pourquoi un message d'erreur d'autorisation s'affiche-t-il lorsque j'essaie d'inscrire ma fonction Lambda à ma rubrique Amazon SNS ?

AWS OFFICIELA mis à jour il y a un an