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

Intermédiaire

 Temps nécessaire

30 minutes

 Coût de réalisation (avec mesures gratuites)

Gratuit

 Coût de réalisation (avec mesures avancées)

Les prix peuvent varier : 0,20 $ par million d'objets surveillés par mois ( page de tarification Amazon S3)

 É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.

c. Dans le volet de navigation, choisissez Rubriques.

d. Cliquez sur le bouton Créer une rubrique.

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.

f.  La nouvelle rubrique apparaît sur la page de présentation de la rubrique.

Étape 2 : Créer des files d'attente Amazon SQS

Chaque système de vente d'assurance interroge les demandes de devis à partir de la file d'attente de messages SQS correspondante qui est abonnée à la rubrique SNS.
 
La première file d'attente traite à la fois les demandes de devis d'assurance automobile et de bateau ; la deuxième file traite les demandes de devis d'assurance-vie ; enfin, la troisième prend toutes les demandes en compte. La troisième file d'attente récupère toutes les demandes de devis, quel que soit le type d'assurance, afin d'alimenter le système analytique. Ces préférences seront définies en tant que stratégies de filtrage dans les abonnements SNS.
 
Au cours de cette étape, vous allez créer les trois files d'attente et abonner chacune d'elles à la rubrique SNS.

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.

e.  Les trois files d'attente sont à présent répertoriées dans la console Amazon SQS.

É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.

b. La boîte de dialogue S'abonner à une rubrique Amazon SNS s'affiche. Dans la liste déroulante Spécifier une rubrique Amazon SNS disponible pour cette file d'attente, sélectionnez la rubrique Demandes-Devis-Assurance, à laquelle vous allez abonner vos trois files d'attente. Étant donné que vous avez créé la rubrique SNS à partir du même compte, celle-ci apparaît dans la liste.

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.

c. Choisissez Enregistrer.

d. La file d'attente est désormais abonnée à la rubrique SNS. Choisissez Files d'attente pour revenir à la page Files d'attente et répétez les étapes a à c pour les files d'attente Devis-Assurance-Vie et Devis-Assurance-Véhicule.

Étape 4 : Assigner des stratégies de filtrage dans les abonnements SNS

Maintenant que toutes les ressources Amazon SNS et Amazon SQS ont été créées, vous pouvez assigner des stratégies de filtrage pour vos abonnements SNS. Une stratégie de filtrage est un document JSON simple, configuré comme un attribut de l'abonnement SNS et qui définit le type de notifications auquel l'abonné est intéressé.

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.

a. Revenez à la console Amazon SNS dans l'autre fenêtre de votre navigateur et sélectionnez Rubriques dans le volet de navigation pour répertorier toutes vos rubriques dans la région.

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"]}

 
Sélectionnez Enregistrer les modifications.

 

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.

Vous allez publier des messages comprenant différents attributs afin de pouvoir visualiser le mécanisme de filtrage des messages d'Amazon SNS en pleine action.

a. Sur la page de la rubrique Demandes-Devis-Assurance, choisissez Publier un message.

b. Créez le premier message en saisissant les valeurs suivantes dans le formulaire :
 
Dans Objet, saisissez :  Demande de devis d'assurance n° 1.
 
Dans Structure du message, laissez l'option  Charge utile identique pour tous les protocoles de diffusion sélectionnée.
 
Dans Corps du message à envoyer au point de terminaison, saisissez le texte suivant pour représenter une demande de devis d'assurance auto :

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 Objet, saisissez :  Demande de devis d'assurance n° 2.
 
Dans Structure du message, laissez l'option  Charge utile identique pour tous les protocoles de diffusion sélectionnée.
 
Dans Corps du message à envoyer au point de terminaison, saisissez le texte suivant pour représenter une demande de devis d'assurance auto :
 
Homme, 33 ans, Vancouver

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.

f. Créez un troisième message en utilisant les valeurs suivantes :
 
Dans Objet, saisissez :  Demande de devis d'assurance n° 3.
 
Dans Structure du message, laissez l'option  Charge utile identique pour tous les protocoles de diffusion sélectionnée.
 
Dans Corps du message à envoyer au point de terminaison, saisissez le texte suivant pour représenter une demande de devis d'assurance habitation :

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.

Vous pouvez constater qu'une file d'attente Amazon SQS abonnée a reçu un message uniquement si son abonnement Amazon SNS correspondant comportait une stratégie de filtrage qui correspondait aux attributs de ce message entrant.
 
Vous pouvez noter également qu'une file d'attente particulière a bien reçu tous les messages publiés dans la rubrique. Si cela s'est produit, c'est parce qu'aucune stratégie de filtrage n'avait été définie pour cet abonnement, ce qui a entraîné un comportement d'acceptation intégrale.

a. Retournez à la console Amazon SQS. Sélectionnez la file d'attente Devis-assurance-véhicule et choisissez Envoyer et recevoir des messages.

b. Choisissez Sondage pour les 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.

d. Affichez le message, puis choisissez Terminé pour fermer la boîte de dialogue.

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.

f. Choisissez Sondage pour les 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.

h. Affichez le message, puis choisissez Terminé pour fermer la boîte de dialogue.

i. Enfin, sélectionnez la file d'attente Tous-les-Devis, puis choisissez Envoyer et recevoir des messages.

j. Choisissez Sondage pour les messages.

k. Veuillez noter que les trois messages ont été envoyés dans cette file d'attente (Demandes de devis d'assurance n° 1, n° 2 et n° 3).

É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.

c. Choisissez Supprimer dans la boîte de dialogue pour confirmer la suppression.

d. Sur la page de présentation de la rubrique Demandes-Devis-Assurance, 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.

h.  Vous pouvez désormais vous déconnecter d’AWS Management Console.

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.

Cette page vous a-t-elle été utile ?

Étapes suivantes