Cours > Module > Chapitre

Lab détaillé : Envoi de notifications groupées avec Amazon SNS

[Video] Envoi de notifications groupées avec Amazon SNS

Dans ce lab, nous allons apprendre à utiliser Amazon Simple Notification Service (SNS) pour envoyer des notifications à différents abonnés (e-mails, SMS, Lambda, SQS) via la console AWS.

📌 Objectifs du Lab

  • Créer un Topic SNS pour envoyer des notifications.
  • Ajouter plusieurs abonnements (E-mail, SMS, AWS Lambda, SQS).
  • Publier un message sur le Topic SNS.
  • Vérifier la réception des notifications.

Étape 1 : Création d'un Topic SNS

  1. Accédez à la console AWS > Amazon SNS.
  2. Cliquez sur Créer un topic.
  3. Choisissez Type de topic : “Standard” (ou FIFO si besoin).
  4. Entrez un Nom du topic : MyTopic.
  5. Cliquez sur Créer un topic.
  6. Copiez l’ARN du Topic SNS affiché.

Étape 2 : Ajouter des abonnements

🔹 Abonnement par E-mail

  1. Dans la console SNS, ouvrez votre topic MyTopic.
  2. Cliquez sur Créer un abonnement.
  3. Choisissez Protocole : Email.
  4. Entrez une adresse e-mail valide.
  5. Cliquez sur Créer un abonnement.
  6. Validez l’abonnement en cliquant sur le lien reçu par e-mail.

🔹🔹 Abonnement à une file SQS

  1. Accédez à la console Amazon SQS.
  2. Cliquez sur Créer une file d’attente, nommez-la MyQueue.
  3. Une fois créée, ouvrez ses paramètres et copiez son ARN.
  4. Retournez à votre Topic SNS et créez un abonnement.
  5. Choisissez Protocole : SQS.
  6. Collez l’ARN de la file SQS et validez.
  7. Modifiez la politique IAM de la file SQS pour autoriser SNS à envoyer des messages :
    • Allez dans Amazon SQS > MyQueue > Autorisations.
    • Ajoutez la politique JSON suivante :
				
					{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "SQS:SendMessage",
      "Resource": "arn:aws:sqs:eu-west-1:123456789012:MyQueue",
      "Condition": {
        "ArnEquals": {
          "aws:SourceArn": "arn:aws:sns:eu-west-1:123456789012:MyTopic"
        }
      }
    }
  ]
}

				
			

🔹 Abonnement à une fonction AWS Lambda

  1. Accédez à la console AWS Lambda.
  2. Cliquez sur Créer une fonction, choisissez Créer à partir de zéro.
  3. Donnez-lui un nom (ProcessSNSMessage).
  4. Sélectionnez Python 3.x comme runtime.
  5. Dans Autorisations, sélectionnez Créer un nouveau rôle avec des permissions de base.
  6. Ajoutez la politique AmazonSNSFullAccess au rôle IAM de la fonction Lambda.
  7. Cliquez sur Créer une fonction.

Dans l’onglet Code source, remplacez le code par le suivant :

				
					import json


def lambda_handler(event, context):
    print("Notification SNS reçue :", json.dumps(event, indent=4))
    return {
        'statusCode': 200,
        'body': json.dumps('Message traité avec succès')
    }

				
			
  1. Cliquez sur Déployer.
  2. Retournez dans votre Topic SNS et ajoutez un abonnement avec le protocole Lambda.

Sélectionnez la fonction ProcessSNSMessage et validez.

Étape 3 : Publier un message SNS

  1. Accédez à votre Topic SNS.
  2. Cliquez sur Publier un message.
  3. Entrez un sujet et un message.
  4. Cliquez sur Publier un message.

📈 Résultats attendus

  • 📧 Un e-mail de notification est reçu.
  • 📲 Un SMS est reçu.
  • 📩 Un message arrive dans la file SQS.
  • 🖥️ La fonction Lambda affiche le message SNS dans ses logs.

Étape 4 : Nettoyage des ressources

  1. Dans la console SNS, supprimez le topic MyTopic.
  2. Dans la console SQS, supprimez la file MyQueue.
  3. Dans la console Lambda, supprimez la fonction ProcessSNSMessage.
  4. Dans la console IAM, supprimez le rôle IAM créé pour Lambda.

🚀 Conclusion

✅ Création d’un Topic SNS. ✅ Ajout d’abonnements (E-mail, SMS, SQS, Lambda). ✅ Publication d’un message et observation des notifications.

🌟 Prochaines étapes

  • Configurer SNS avec CloudWatch pour surveiller les notifications.
  • Automatiser les notifications pour des alertes AWS (ex: EC2, S3, etc.).

Bon apprentissage sur AWS SNS ! 🚀

×

Panier