Comment personnaliser les e-mails Amazon SNS par défaut ?

Lecture de 4 minute(s)
0

Je souhaite modifier la ligne d'objet standard de l'e-mail Amazon Simple Notification Service (Amazon SNS) « Message de notification AWS » pour une notification Amazon EventBridge.

Brève description

Amazon SNS reçoit des notifications d'une règle EventBridge créée avec les services AWS comme source d'événements pour la livraison par e-mail. Notez que la ligne d'objet « Message de notification AWS » et le corps de l'e-mail sont fixes. Vous ne pouvez pas les modifier directement si un service AWS déclenche la rubrique Amazon SNS associée à l'abonnement par e-mail.

Flux de travail

  1. Un événement déclenche une règle EventBridge.
  2. La charge utile de la règle EventBridge invoque la fonction Lambda.
  3. La fonction Lambda appelle l'API Amazon SNS Publish.
  4. Amazon SNS envoie un message ou une notification par e-mail avec le « sujet » et le « corps » personnalisés.

Résolution

Incluez AWS Lambda dans l'architecture pour personnaliser la ligne d'objet et le corps du message par défaut selon les besoins. Vous pouvez utiliser AWS Lambda au lieu de la rubrique Amazon SNS comme cible pour la règle EventBridge. Utilisez ensuite la fonction Lambda pour publier des messages avec un objet et un corps d'e-mail personnalisés dans le sujet Amazon SNS avec les abonnés.

Suivez ces étapes pour personnaliser la notification.

Créez un sujet SNS et d'un abonnement par e-mail

  1. Créez une rubrique SNS.
  2. Créez un abonnement par e-mail.

**Création de la fonction Lambda **

  1. Ouvrez la Page Fonctions dans la console Lambda.

  2. Sélectionnez Créer une fonction.

  3. Sélectionnez Auteur à partir de zéro.

  4. Indiquez le Nom de la fonction, puis sélectionnez le moteur d'exécution en tant que **Python 3.10. **

  5. Créez un Rôle d'exécution. Ce rôle doit disposer des autorisations nécessaires pour publier la rubrique SNS spécifiée. Ici, votre fonction Lambda a été créée avec la politique gérée par AWS pour Lambda.

  6. Attachez AWSLambdAbasicExecutionRole et la politique AmazonSNSFullAccess au rôle d'exécution de la fonction. Pour associer la politique d'exécution pour Lambda, consultez la section Rôle d'exécution Lambda.

  7. Sélectionnez Créer une fonction. Dans la fonction Code Éditeur, collez le code suivant :
    Important : Cet extrait de code est fourni à titre de référence uniquement. N'utilisez pas d'exemples d'extraits de code dans votre environnement de production avant de le tester.

    Exemple : Exemple de code Python

    import boto3
    import json
    sns_arn = "sns_topic_arn"
    
    def lambda_handler(event, context):
        client = boto3.client("sns")
        resp = client.publish(TargetArn=sns_arn, Message=json.dumps(event), Subject="This is the customized subject line")

    Remarque : Remplacez sns_topic_arn par l'ARN du sujet figurant dans Créer un sujet SNS et notification par e-mail. Remplacez « Ceci est la ligne d'objet personnalisée » par votre propre ligne d'objet, entre guillemets.

  8. Choisissez Déployer.

Création d'une règle EventBridge

Créez une règle EventBridge à l'aide de la console Amazon EventBridge.

Remarque :

  • Pour l'étape 11 de la documentation AWS, Sélectionnez une cible, choisissez la fonction Lambda que vous avez créée sous Créer une fonction lambda.
  • Fournissez le message de charge utile que vous souhaitez pour votre fonction Lambda.

Lorsque la règle EventBridge est invoquée, la fonction Lambda envoie un appel d'API Publish à Amazon SNS. Il transmet le message de la règle d'événement tout en modifiant le sujet qu'il utilise pour délivrer le message. L'abonné reçoit ensuite l'e-mail avec la ligne d'objet personnalisée dans sa boîte aux lettres.

Informations connexes

Pourquoi les notifications courriel de ma rubrique Amazon SNS ne m’arrivent-elles pas ?

Pourquoi ai-je reçu un e-mail d'AWS indiquant que mon abonnement Amazon SNS avait été désactivé manuellement ?

Comment puis-je empêcher les destinataires de ma liste de diffusion de désabonner tous les membres de la liste d’e-mails thématiques Amazon SNS ?

Pourquoi n'ai-je pas reçu de notification SNS pour mon déclencheur d'alerte Amazon CloudWatch ?

Comment envoyer un e-mail à l'aide de Lambda et d'Amazon Simple Email Service (Amazon SES) ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 9 mois