[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
- Accédez à la console AWS > Amazon SNS.
- Cliquez sur Créer un topic.
- Choisissez Type de topic : “Standard” (ou FIFO si besoin).
- Entrez un Nom du topic : MyTopic.
- Cliquez sur Créer un topic.
- Copiez l’ARN du Topic SNS affiché.
Étape 2 : Ajouter des abonnements
🔹 Abonnement par E-mail
- Dans la console SNS, ouvrez votre topic MyTopic.
- Cliquez sur Créer un abonnement.
- Choisissez Protocole : Email.
- Entrez une adresse e-mail valide.
- Cliquez sur Créer un abonnement.
- Validez l’abonnement en cliquant sur le lien reçu par e-mail.
🔹🔹 Abonnement à une file SQS
- Accédez à la console Amazon SQS.
- Cliquez sur Créer une file d’attente, nommez-la MyQueue.
- Une fois créée, ouvrez ses paramètres et copiez son ARN.
- Retournez à votre Topic SNS et créez un abonnement.
- Choisissez Protocole : SQS.
- Collez l’ARN de la file SQS et validez.
- 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
- Accédez à la console AWS Lambda.
- Cliquez sur Créer une fonction, choisissez Créer à partir de zéro.
- Donnez-lui un nom (ProcessSNSMessage).
- Sélectionnez Python 3.x comme runtime.
- Dans Autorisations, sélectionnez Créer un nouveau rôle avec des permissions de base.
- Ajoutez la politique AmazonSNSFullAccess au rôle IAM de la fonction Lambda.
- 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')
}
- Cliquez sur Déployer.
- 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
- Accédez à votre Topic SNS.
- Cliquez sur Publier un message.
- Entrez un sujet et un message.
- 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
- Dans la console SNS, supprimez le topic MyTopic.
- Dans la console SQS, supprimez la file MyQueue.
- Dans la console Lambda, supprimez la fonction ProcessSNSMessage.
- 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 ! 🚀