Passer au contenu

Comment personnaliser l'objet d’e-mail Amazon SNS par défaut ?

Lecture de 3 minute(s)
0

Je souhaite personnaliser l’objet d’e-mail Amazon Simple Notification Service (Amazon SNS) par défaut « 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. Vous ne pouvez pas modifier directement l'objet de l’e-mail Message de notification AWS si un service AWS déclenche la rubrique Amazon SNS associée à l'abonnement par e-mail.

Résolution

Créez une fonction AWS Lambda pour personnaliser l'objet d’e-mail par défaut. Vous pouvez utiliser Lambda au lieu de la rubrique Amazon SNS comme cible pour la règle EventBridge. Puis, utilisez la fonction Lambda pour publier des messages avec un objet d'e-mail personnalisé dans la rubrique Amazon SNS avec les abonnés.

Créer une rubrique SNS et un abonnement par e-mail

Créez une rubrique SNS, puis créez un abonnement par e-mail.

Créer un rôle IAM pour la fonction Lambda

Pour créer un rôle Gestion des identités et des accès AWS (AWS IAM) pour la fonction Lambda, procédez comme suit :

  1. Ouvrez la console IAM.
  2. Dans le volet de navigation, sélectionnez Rôles, puis Créer un rôle.
  3. Choisissez la liste déroulante Service ou cas d'utilisation, choisissez Lambda, puis cliquez sur Suivant.
  4. Sur la page Ajouter des autorisations, associez les politiques AWSLambdaBasicExecutionRole et AmazonSNSFullAccess au rôle, puis cliquez sur Suivant.
    Important : La politique gérée AmazonSNSFullAccess fournit un accès complet à Amazon SNS. Il est recommandé de suivre le principe du moindre privilège.
  5. Dans Nom du rôle, saisissez un nom pour le rôle, puis choisissez Créer un rôle.

Créer la fonction Lambda

Procédez comme suit :

  1. Ouvrez la page Fonctions dans la console Lambda.

  2. Sélectionnez Créer une fonction.

  3. Sélectionnez Créer à partir de zéro.

  4. Dans Nom de la fonction, saisissez un nom pour la fonction.

  5. Sélectionnez la liste déroulante Exécution, puis Python 3.13.

  6. Développez Modifier le rôle d'exécution par défaut, puis choisissez Utiliser un rôle existant.

  7. Sélectionnez la liste déroulante Rôle existant, puis choisissez le rôle que vous avez créé précédemment.

  8. Sélectionnez Créer une fonction.

  9. Dans l'éditeur de code de fonction, saisissez l'extrait de code Python suivant :

    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'Amazon Resource Name (ARN) de la rubrique figurant dans Créer une rubrique SNS et une notification par e-mail. Remplacez « Ceci est l’objet personnalisé » par votre propre objet, entre guillemets.

  10. Choisissez Déployer.

Créer une règle EventBridge

Suivez ces instructions pour créer une règle EventBridge.

Remarque :

  • Pour l'étape 11 de la documentation AWS, Sélectionner une cible, choisissez la fonction Lambda que vous avez créée précédemment.
  • Fournissez le message de donnés utiles 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 l’objet qu'il utilise pour délivrer le message. L'abonné reçoit ensuite l'e-mail avec l’objet personnalisé dans sa boîte aux lettres.

Informations connexes

Comment puis-je envoyer un e-mail à l’aide de Lambda et d’Amazon SES ?

AWS OFFICIELA mis à jour il y a 2 mois