Mise en route / Ateliers / …
Diffusion en éventail de notifications d'événements
avec Amazon Simple Queue Service (SQS) et Amazon Simple Notification Service (SNS)
Introduction
Dans ce didacticiel, vous allez mettre en place un scénario de messagerie de diffusion en éventail à l'aide d'Amazon Simple Notification Service (SNS) et d'Amazon Simple Queue Service (SQS). Dans ce scénario, les messages sont envoyés par notification push à plusieurs abonnés, ce qui permet de ne pas avoir à vérifier ou à rechercher régulièrement des mises à jour et autorise le traitement asynchrone parallèle du message par les abonnés.
Pour illustrer cela, nous allons admettre que nous développons une application cloud native qui envoie un message Amazon SNS à une rubrique lorsqu’une commande est passée sur une boutique en ligne. Les files d’attente Amazon SQS souscrites à la rubrique recevront chacune des notifications identiques pour la nouvelle commande.
Les services AWS que vous utilisez dans ce didacticiel sont inclus dans l'offre gratuite d'AWS.
Coût de réalisation
Offre gratuite
Services utilisés
Diffusion en éventail de notifications d'événements
sur AWS nécessite un compte
L'offre gratuite d'AWS comprend un million de publications pour Amazon Simple Notification Service et un million de requêtes d'Amazon Simple Queue Service.
Mise en œuvre
-
Ouvrez la console Amazon SNS
Lorsque vous cliquez ici, la console de gestion AWS s'ouvre dans une nouvelle fenêtre de navigateur, afin de maintenir ce guide détaillé ouvert. Lorsque cet écran se charge, saisissez votre nom d'utilisateur et votre mot de passe pour commencer. Saisissez ensuite notification dans la barre de recherche et sélectionnez Simple Notification Service pour ouvrir la console du service.
a. Si la page d'accueil de la console SNS s'affiche, cliquez sur Étape suivante.
-
Créer une rubrique Amazon SNS
À cette étape, vous allez créer une rubrique Amazon SNS. Une rubrique correspond à un canal de communication pour envoyer des messages et s’abonner à des notifications. Dans cet exemple, un exemple d’application d’e-commerce va envoyer un message par notification push à une rubrique Amazon SNS dès qu’une nouvelle commande va être passée sur la boutique en ligne.
a. Sur la page Créer une rubrique, saisissez Nouvelles-Commandes dans le champ de nom de rubrique, puis cliquez sur Créer une rubrique.
b. L'affichage de la page Détails de la rubrique confirme la création de la rubrique.
-
Création de files d'attente Amazon SQS
Maintenant que vous avez créé la rubrique avec Amazon SNS, vous allez créer des files d'attente Amazon SQS qui vont s'abonner à la rubrique.
Lorsque plusieurs files d’attente sont abonnées à une rubrique, chacune reçoit des notifications identiques aux autres dès qu’un message est envoyé à la rubrique. Les services associés à ces files d’attente peuvent alors traiter de manière asynchrone et en parallèle les commandes.
Par exemple, une instance de serveur Amazon EC2 jointe à l’une des files d’attente peut gérer le traitement ou l’expédition de la commande pendant qu’une autre instance de serveur peut être jointe à un entrepôt de données pour analyser toutes les commandes reçues.
Pour que les choses restent simples, nous n’associerons pas d’instances EC2 aux files d’attente dans ce didacticiel.
a. Cliquez ici pour ouvrir la console Amazon SQS dans une nouvelle fenêtre de navigateur. Si la page d'accueil de SQS s'affiche, cliquez sur Pour commencer. Sinon, passez à l'étape suivante.
b. Notre première file d’attente va stocker les commandes pour un service d’inventaire fictif qui va suivre les produits, les ajouter et les supprimer, selon les besoins, de l’inventaire en fonction de chaque commande.
Sur la page Créer une nouvelle file d'attente, entrez Commandes-pour-inventaire dans le champ Nom de la file d'attente. Laissez File d'attente standard sélectionné et cliquez sur Créer une file d'attente rapide.
c. Votre nouvelle file d'attente est créée et sélectionnée dans la liste des files d'attente. Créez ensuite une deuxième file d'attente pour gérer l'analyse des commandes.
Cliquez sur Créer une nouvelle file d'attente pour créer une autre file d'attente qui va stocker les commandes pour le service d'analyse.
d. Entrez Commandes-pour-analyse dans le champ Nom de la file d'attente, puis cliquez sur Créer une file d'attente rapide.
e. La nouvelle file d'attente apparaît désormais dans la liste de files d'attente.
-
Abonnement des files d'attente à la rubrique
Maintenant que vous avez créé deux files d'attente Amazon SQS, vous devez les abonner à la rubrique Amazon SNS qui envoie des notifications en cas de nouvelles commandes.
a. À partir de la liste des files d’attente, sélectionnez les files d’attente Commandes-pour-inventaire et Commandes-pour-analyse. Dans Actions sur les files d'attente, sélectionnez Abonner des files d'attente à une rubrique SNS.
b. La boîte de dialogue S'abonner à une rubrique s'affiche. Dans le menu déroulant Choisir une rubrique, sélectionnez votre rubrique Amazon SNS Nouvelles-Commandes.
Votre rubrique SNS figure dans la liste, car vous l’avez créée à partir du même compte que celui utilisé pour créer vos files d’attente Amazon SQS. Si la rubrique SNS a été créée à partir d’un autre compte, vous pouvez y effectuer des abonnements à l’aide de l’ARN de la rubrique. Pour plus d'informations, consultez la documentation Amazon SNS.
Ne touchez pas à Région de la rubrique et cliquez sur S'abonner.
c. La boîte de dialogue Résultat de l'abonnement à la rubrique s'affiche. Cliquez sur OK.
-
Publication d'un message dans la rubrique
Vos files d'attente sont désormais abonnées à la rubrique. Lors de cette étape, vous allez simuler une nouvelle commande avec une application d’e-commerce fictive qui envoie à la rubrique un message contenant les détails de la commande.
a. Sur la page des détails de la rubrique Nouvelles-Commandes de la console Amazon SNS, cliquez sur Publier un message.
b. La page Publication de messages sur la rubrique s'affiche. Dans la case Objet, saisissez le numéro de commande 123-4567890-1234567. Dans le champ Message, entrez le texte suivant comme exemple de commande :
1 x widget à 29,99 USD
2 x câbles de widget à 4,99 USDCliquez sur Publier le message. Une boîte de dialogue de confirmation s'ouvre.
-
Vérification de l'abonnement
Dès lors qu'un nouveau message est publié, Amazon SNS envoie ce message à chaque point de terminaison abonné à la rubrique. Dans un scénario de distribution comme celui-ci, les files d’attente Amazon SQS sont les points de terminaison.
Lors de cette étape, vous allez confirmer la réception par les files d’attente de la notification de nouvelle commande en consultant le message envoyé par la rubrique aux files d’attente.
a. Dans la console Amazon SQS, vérifiez la boîte pour la file d’attente Commandes-pour-inventaire dans la liste des files d’attente. Dans le menu déroulant Actions sur la file d'attente, sélectionnez Afficher/supprimer des messages.
b. Cliquez sur Commencer la recherche de messages.
c. La boîte de dialogue Afficher/supprimer des messages dans Commandes-pour-inventaire s'affiche.
d. Dans la colonne Corps, cliquez sur Plus de détails. Le champ Détails du message contient un document JSON comportant l'objet et le message publiés dans la rubrique.
Vous avez confirmé que la file d'attente Commandes-pour-inventaire a reçu la notification de la nouvelle commande de la part de la rubrique Nouvelles-commandes.
Cliquez sur Fermer.
e. Nous admettrons que notre service d’inventaire fictif a terminé de traiter le message et que nous pouvons supprimer en toute sécurité le message de la file d’attente.
Cliquez sur Supprimer un message. Pour confirmer, cliquez sur Oui, supprimer les messages cochés. Cliquez ensuite sur Fermer.
f. Répétez les étapes 6a à 6e pour confirmer que la file d'attente Commandes-pour-analyse a également reçu la notification de la nouvelle commande.
-
Suppression de vos ressources
Lors de cette étape, vous allez supprimer les ressources créées pour ce didacticiel, ces dernières incluant les abonnements aux rubriques, les rubriques et les files d'attente. Une bonne pratique consiste à supprimer les ressources que vous n'utilisez plus pour éviter d'encourir des frais.
a. Ouvrez la console Amazon SNS et cliquez sur Rubriques dans le volet de navigation de gauche.
Sélectionnez la rubrique Nouvelles-Commandes.
Cliquez sur Supprimer pour supprimer les rubriques.
b. La boîte de dialogue de confirmation Supprimer s'affiche. Saisissez me supprimer dans la boîte de dialogue et cliquez sur Supprimer. La rubrique et ses abonnements sont supprimés. Vous pouvez alors fermer la fenêtre de navigateur SNS (sans vous déconnecter, car vous devez encore supprimer les files d'attente de la console SQS).
c. Dans la console Amazon SQS, sélectionnez les files d'attente Commandes-pour-inventaire et Commandes-pour-analyse. Dans le menu déroulant Actions sur les files d'attente, sélectionnez Supprimer des files d'attente.
d. La boîte de dialogue Supprimer des files d'attente s'affiche. Cliquez sur Oui, supprimer deux files d'attente. Les files d'attente sont supprimées.
Vous pouvez désormais vous déconnecter de la console Amazon SQS.
Félicitations !
Vous avez mis en place un scénario de distribution en utilisant Amazon SNS et Amazon SQS. Vous êtes désormais en mesure d'utiliser Amazon SNS et Amazon SQS pour envoyer des messages aux applications qui exigent une notification immédiate en cas d'événement, ou pour les placer dans une file d'attente Amazon SQS afin que d'autres applications puissent les traiter ultérieurement.