Mise en route / Ateliers / …
Filtrer les messages publiés vers des rubriques avec Amazon SNS et Amazon SQS
DIDACTICIEL
Présentation
Dans ce didacticiel, vous apprendrez à utiliser la fonction de filtrage des messages d'Amazon Simple Notification Service (Amazon SNS). La fonction de filtrage des messages permet aux abonnés à une rubrique SNS de ne recevoir que le sous-ensemble de messages de la rubrique les intéressant.
Dans notre exemple, les utilisateurs consultent un site Web pour demander des devis d'assurance. Ces demandes de devis peuvent porter sur une assurance pour véhicules (comme pour les voitures et les bateaux), une assurance-vie ou d'autres types d'assurance (comme pour les habitations). Lorsqu'un utilisateur demande un devis d'assurance, la demande est transmise à une série de systèmes dorsaux : un système de vente gère l'assurance des véhicules pour les voitures et les bateaux, un autre système de vente gère l'assurance-vie et un système d'analyse traite toutes les demandes de devis.
Comme dans le didacticiel Envoyer des notifications d'événements de diffusion en éventail, nous allons employer un modèle de messagerie en éventail basé sur Amazon SNS et Amazon Simple Queue Service (Amazon SQS) pour découpler le site Web par rapport aux systèmes dorsaux. Pour acheminer les notifications d'événements vers le système dorsal approprié, vous pouvez créer une rubrique distincte pour chaque type de demande de devis, puis ajouter une logique de routage des messages à votre éditeur. Cette option peut toutefois donner lieu à des éditeurs démesurément complexes, à une prolifération des rubriques, ainsi qu'à des coûts supplémentaires liés au provisionnement et à la gestion de vos rubriques SNS. Le filtrage des messages Amazon SNS est, en comparaison, beaucoup plus simple !
Vous utiliserez Amazon SNS et Amazon SQS dans ce didacticiel. Ces deux services sont inclus dans l'offre gratuite AWS.
Expérience AWS
Temps nécessaire
30 minutes
Coût de réalisation (avec mesures gratuites)
Gratuit
Coût de réalisation (avec mesures avancées)
Éléments requis
Compte AWS et compartiment Amazon S3 rempli
Services utilisés
Date de la dernière mise à jour
23 août 2022
Implémentation
Étape 1 : Créer une rubrique SNS
La première étape consiste à créer une rubrique Amazon SNS afin de publier les messages chaque fois que des demandes de devis sont déposées sur un site Web d'assurance. Ces demandes prospectives peuvent concerner des contrats d'assurance automobile, de bateau ou d'assurance-vie.
a. Ouvrez AWS Management Console dans une nouvelle fenêtre de navigateur afin de garder ce guide détaillé ouvert. Lorsque la page s’affiche, 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.
b. Si la page d'accueil de la console SNS s'affiche, choisissez Commencer par un aperçu. Si cette page ne s'affiche pas, passez à l'étape suivante.
e. Dans Type, sélectionnez Standard. Dans le champ Nom, saisissez Demandes-Devis-Assurance, puis faites défiler la page vers le bas et cliquez sur le bouton Créer une rubrique.
Étape 2 : Créer des files d'attente Amazon SQS
a. Ouvrez la console Amazon SQS dans une nouvelle fenêtre de navigateur. Si la page d'accueil Amazon SQS s'affiche, choisissez Créer une file d'attente. Sinon, passez à l'étape suivante.
b. Sur la page Créer une file d'attente, laissez Standard sélectionné pour Type. Saisissez Devis-Assurance-Véhicule dans le champ Nom, puis faites défiler vers le bas et cliquez sur le bouton Créer une file d'attente.
c. La nouvelle file d'attente apparaît sur la page Présentation de la file d'attente. Sélectionnez Files d'attente pour revenir à la page d'accueil des files d'attente.
d. Cliquez sur le bouton Créer une file d'attente et répétez les étapes 2b et 2c pour créer deux files d'attente supplémentaires portant les noms suivants : Devis-Assurance-Vie et Tous-les-Devis.
Étape 3 : Abonner les files d'attente à la rubrique
Maintenant que vous avez créé les trois files d'attente SQS, vous devez les abonner à la rubrique SNS qui va diffuser les nouvelles demandes de devis d'assurance.
a. Dans la liste des files d'attente, sélectionnez la file d'attente Tous-les-Devis.
Choisissez Actions, puis sélectionnez S'abonner à la rubrique Amazon SNS.
Si la rubrique SNS a été créée à partir d'un autre compte, vous pouvez y effectuer des abonnements à l'aide du champ ARN de la rubrique. Pour plus de détails, consultez la documentation d'Amazon SNS ou le billet de blog Intégration entre comptes avec SNS.
Étape 4 : Assigner des stratégies de filtrage dans les abonnements SNS
Les abonnements pour lesquels aucune stratégie de filtrage n'est définie recevront tous les messages publiés dans la rubrique SNS. Vous n'avez donc pas besoin de définir de stratégie de filtrage pour la file d'attente Tous-les-Devis dans ce scénario.
Sélectionnez le nom de la rubrique Demandes-Devis-Assurance dans la liste.
b. Vous accédez ainsi à la page de présentation de la rubrique Demandes-Devis-Assurance, dans laquelle s'affichent toutes les files d'attente SQS abonnées à cette rubrique SNS. Sélectionnez la file d'attente Devis-Assurance-Véhicule, puis choisissez Modifier.
c. Vous accédez ainsi à la page Modifier l'abonnement. Sélectionnez la flèche située à gauche de la Stratégie de filtrage des abonnements, puis sélectionnez Activé pour modifier la stratégie.
d. Dans la boîte de dialogue qui s'affiche, saisissez l'objet JSON suivant dans l'éditeur JSON :
{"insurance_type": ["car", "boat"]}
Sélectionnez Enregistrer les modifications.
e. Un message de confirmation s'affiche pour confirmer que la stratégie de filtrage d'abonnement a bien été enregistrée. Cliquez sur Demandes-Devis-Assurance pour revenir à la page Présentation de la rubrique.
f. Vous allez à présent répéter la procédure afin d'ajouter la stratégie de filtrage à la deuxième file d'attente. Sélectionnez la file d'attente Devis-Assurance-Vie et choisissez Modifier.
g. Sélectionnez la flèche située à gauche de la Stratégie de filtrage des abonnements, puis sélectionnez Activé pour modifier la stratégie.
h. Dans la boîte de dialogue qui s'affiche, saisissez l'objet JSON suivant dans l'éditeur JSON :
{"insurance_type": ["life"]}
Vous n'avez pas besoin de définir de stratégie de filtrage pour l'abonnement associé à la file d'attente Tous-les-Devis. Sans définition de stratégie, cette file d'attente récupérera tous les événements publiés dans la rubrique.
Étape 5 : Publier des messages dans la rubrique
Voyons ce que cela donne. Au cours de cette étape, vous allez pouvoir simuler de nouvelles demandes de devis d'assurance en provenance de votre site Web de génération de prospects en publiant des messages dans la rubrique.
Volvo S60 2017, Montréal
Dans Attributs du message :
- Sélectionnez Chaîne dans le champ Type.
- Saisissez type_assurance dans le champ Nom.
- Saisissez auto dans le champ Valeur.
Choisissez Publier un message.
c. Vous voilà de nouveau sur la page de la rubrique Demandes-Devis-Assurance. Choisissez à nouveau Publier un message.
d. Créez un deuxième message en utilisant les valeurs suivantes :
Dans Attributs du message :
- Sélectionnez Chaîne dans le champ Type.
- Saisissez type_assurance dans le champ Nom.
- Saisissez vie dans le champ Valeur.
Choisissez Publier un message.
e. Vous voilà de nouveau sur la page de la rubrique Demandes-Devis-Assurance. Choisissez à nouveau Publier un message.
Maison de ville, 139 m², Toronto
Dans Attributs du message :
- Sélectionnez Chaîne dans le champ Type.
- Saisissez type_assurance dans le champ Nom.
- Saisissez maison dans le champ Valeur.
Choisissez Publier un message.
Étape 6 : Vérifier la diffusion de vos messages
Le moment est venu de vérifier que chaque type de demande de devis d'assurance a bien été acheminé vers la file d'attente de messages Amazon SQS correspondante. Pour cela, vous allez inspecter les livraisons de messages qui ont eu lieu.
a. Retournez à la console Amazon SQS. Sélectionnez la file d'attente Devis-assurance-véhicule et choisissez Envoyer et recevoir des messages.
c. Veuillez noter qu'un seul message relatif à ce devis d'assurance auto a été envoyé dans la file d'attente (Demande de devis d'assurance n° 1). Une fois le processus de sondage terminé, visualisez le message placé dans la file d'attente en le sélectionnant sous Messages.
e. Répétez la procédure pour la deuxième file d'attente. Sélectionnez la file d'attente Devis-Assurance-Vie, puis choisissez Envoyer et recevoir des messages.
g. Veuillez noter qu'un seul message relatif à ce devis d'assurance vie a été envoyé dans cette file d'attente (Demande de devis d'assurance n° 2). Une fois le processus de sondage terminé, visualisez le message placé dans la file d'attente en le sélectionnant sous Messages.
i. Enfin, sélectionnez la file d'attente Tous-les-Devis, puis choisissez Envoyer et recevoir des messages.
Étape 7 : Nettoyer les ressources
Lors de cette étape, vous allez supprimer les ressources créées pour ce didacticiel, ces dernières incluant une rubrique, des abonnements et des files d'attentes. Une bonne pratique consiste à supprimer les ressources que vous n'utilisez plus pour éviter d'encourir des frais.
a. Dans le volet de navigation de la console Amazon SNS, sélectionnez Rubriques, puis choisissez le lien de la rubrique Demandes-Devis-Assurance.
b. Sur la page de présentation de la rubrique Demandes-Devis-Assurance, sélectionnez chacun des abonnements et choisissez Supprimer.
e. Confirmez la suppression en saisissant supprimez-moi dans la boîte de dialogue, puis choisissez Supprimer.
f. Retournez à la console Amazon SQS. Sélectionnez chacune des files d'attente utilisées dans ce didacticiel et choisissez Supprimer.
g. Confirmez la suppression en saisissant Supprimer dans la boîte de dialogue, puis en choisissant Supprimer.
Conclusion
Vous pouvez désormais utiliser le filtrage des messages dans Amazon SNS afin de créer des architectures pub/sub plus simples et plus rationalisées.
Le filtrage des messages permet aux abonnés des rubriques Amazon SNS de sélectionner les messages qui les intéressent et qu'ils souhaitent recevoir, au lieu de recevoir tous les messages publiés dans une rubrique. Cela vous permet de décharger la logique de filtrage des messages de vos abonnés et la logique de routage des messages de vos systèmes de diffuseur de publication.