Dans ce didacticiel, vous allez mettre en place un scénario de messagerie distribuée à 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 d'éliminer le besoin de vérifier ou rechercher régulièrement des mises à jour et d'autoriser 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 AWS.

L’envoi de notifications d’événements de distribution sur AWS nécessite un compte.

Créer un compte gratuit

L’offre gratuite AWS comprend 1 000 000 de publications pour Amazon Simple Notification Service et 1 000 000 de requêtes d’Amazon Simple Queue Service.

Voir les détails relatifs à l'offre gratuite d'AWS »

 

Lorsque vous cliquez ici, AWS Management Console s’ouvre dans une nouvelle fenêtre du navigateur. Vous pouvez ainsi garder 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.

tmt_send-fanout-event-notifications_1a

(cliquez pour zoomer)

tmt_send-fanout-event-notifications_1a

a. Si la page d'accueil de la console SNS s'affiche, cliquez sur Étape suivante.

1a-sns-console-home

(cliquez pour zoomer)

1a-sns-console-home

À 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 la boîte de nom de rubrique, puis cliquez sur Créer une rubrique.

2a-topic-create-wf

(cliquez pour zoomer)

2a-topic-create-wf

b. L’affichage de la page Détails de la rubrique confirme la création de la rubrique.

2b-topic-create-confirm

(cliquez pour zoomer)

2b-topic-create-confirm

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.

 

tmt_send-fanout-event-notifications_3a

(cliquez pour zoomer)

tmt_send-fanout-event-notifications_3a

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, saisissez 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.

tmt_send-fanout-event-notifications_3b

(cliquez pour zoomer)

tmt_send-fanout-event-notifications_3b

c. Votre nouvelle file d'attente est créée et sélectionnée dans la liste des files d'attente. Ensuite, vous allez créer une deuxième file d’attente pour gérer l’analyse des commande.

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.

tmt_send-fanout-event-notifications_3c

(cliquez pour zoomer)

tmt_send-fanout-event-notifications_3c

d. Saisissez Commandes-pour-analyse dans le champ Nom de la file d’attente, puis cliquez sur Créer une file d’attente rapide

tmt_send-fanout-event-notifications_3d

(cliquez pour zoomer)

tmt_send-fanout-event-notifications_3d

e. La nouvelle file d’attente apparaît désormais dans la liste de files d’attente.

tmt_send-fanout-event-notifications_3e

(cliquez pour zoomer)

tmt_send-fanout-event-notifications_3e

Maintenant que vous avez créé deux files d’attente Amazon SQS, vous devez les abonner à la rubrique Amazon SNS qui va envoyer les 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. À partir de Actions sur les files d’attente, sélectionnez Abonner des files d’attente à une rubrique SNS.

tmt_send-fanout-event-notifications_4a

(cliquez pour zoomer)

tmt_send-fanout-event-notifications_4a

b. La boîte de dialogue Abonner à une rubrique s’ouvre alors. À partir du 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 à l’item Région de la rubrique et cliquez sur Abonner.  

tmt_send-fanout-event-notifications_4b

(cliquez pour zoomer)

tmt_send-fanout-event-notifications_4b

c. La boîte de dialogue Résultat d’abonnement à la rubrique s’affiche. Cliquez sur OK.

tmt_send-fanout-event-notifications_4c

(cliquez pour zoomer)

tmt_send-fanout-event-notifications_4c

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.

 

5a-topic-create-confirm

(cliquez pour zoomer)

5a-topic-create-confirm

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, saisissez le texte suivant pour représenter un exemple de commande :

1x widget à 29,99 USD

2x câbles de widget à 4,99 USD

Cliquez sur Publier le message. Une boîte de dialogue de confirmation s'ouvre.

 

5b-sns-send-message-wf

(cliquez pour zoomer)

5b-sns-send-message-wf

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.

 

tmt_send-fanout-event-notifications_6a

(cliquez pour zoomer)

tmt_send-fanout-event-notifications_6a

b. Cliquez sur Démarrer le polling pour les messages.


tmt_send-fanout-event-notifications_6b

(cliquez pour zoomer)

tmt_send-fanout-event-notifications_6b

c. La boîte de dialogue Afficher/supprimer des messages dans Commandes-pour-inventaire s’affiche.

tmt_send-fanout-event-notifications_6c

(cliquez pour zoomer)

tmt_send-fanout-event-notifications_6c

d. Dans la colonne Corps, cliquez sur Plus de détails. La case 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.

 

tmt_send-fanout-event-notifications_6d

(cliquez pour zoomer)

tmt_send-fanout-event-notifications_6d

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.

 

tmt_send-fanout-event-notifications_6e

(cliquez pour zoomer)

tmt_send-fanout-event-notifications_6e

f. Répétez les étapes 6a jusqu’à 6e pour confirmer que la file d’attente Commandes-pour-analyse a également reçu la notification de la nouvelle commande.

tmt_send-fanout-event-notifications_6f

(cliquez pour zoomer)

tmt_send-fanout-event-notifications_6f

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’attentes. 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.

 

7a

(cliquez pour zoomer)

7a

b. Dans la boîte de dialogue de confirmation Supprimer s’ouvre. 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).

7b

(cliquez pour zoomer)

7b

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.


tmt_send-fanout-event-notifications_7c

(cliquez pour zoomer)

tmt_send-fanout-event-notifications_7c

d. La boîte de dialogue Suppression de files d’attente s’ouvre. 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.

tmt_send-fanout-event-notifications_7d

(cliquez pour zoomer)

tmt_send-fanout-event-notifications_7d

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 ensemble pour envoyer des messages aux applications qui exigent une notification immédiate en cas d’événement ou pour les faire rester dans une file d'attente Amazon SQS, afin que d'autres applications puissent les traiter ultérieurement.

 


Maintenant que vous avez appris à mettre en place des notifications de distribution de messages à l’aide d’Amazon Simple Notification Service et d’Amazon Simple Queue Service, sélectionnez l’une des options suivantes pour approfondir votre expérience de la messagerie cloud sur AWS.

En savoir plus

Obtenez une présentation sur les fonctionnalités, composants et cas d'utilisation relatifs aux rubriques et aux messages sur Amazon Web Services (AWS). Visiter la page web Amazon SNS »

Explorer plus en détails

Découvrez comment permettre aux applications, aux utilisateurs finaux et aux appareils d’envoyer et recevoir instantanément des notifications à partir du cloud. Lire la documentation »

Tout voir à l’œuvre

Découvrez comment des clients comme Capital One utilisent Amazon SQS et Amazon SNS pour découpler et dimensionner les applications. Regarder le webinaire »

Oui
Non