Dans ce didacticiel, vous allez apprendre à exploiter la fonction de filtrage des messages d'Amazon Simple Notification Service (SNS). La fonction de filtrage des messages permet aux points de terminaison abonnés à une rubrique SNS de ne recevoir que le sous-ensemble de messages pertinents de la rubrique.
Dans notre exemple, les utilisateurs consultent un site Web pour envoyer des demandes de devis d'assurance. Ces demandes de devis peuvent concerner des contrats d'assurance automobile, de bateau ou d'assurance-vie. Lorsqu'une demande de devis d'assurance est envoyée, elle est acheminée via une série de systèmes dorsaux. Il existe un système de vente chargé de gérer l'assurance des véhicules pour les automobiles et les bateaux, un autre système de vente qui gère l'assurance-vie et enfin un système d'analyse qui traite toutes les demandes de devis.
Comme nous l'avons appris dans le tutoriel Envoyer des notifications d'événements de distribution, nous allons employer un modèle de messagerie en éventail basé sur SNS et 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 SNS est, en comparaison, beaucoup plus simple !
Dans ce tutoriel, vous allez utiliser Amazon SNS et Amazon Simple Queue Service (SQS). Ces deux services sont inclus dans l'offre gratuite AWS.
Filtrage des messages sur AWS nécessite la souscription d'un compte
Créer un compte gratuitL’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 »
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. 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.
Chaque système de vente d'assurance interroge les demandes de devis à partir de sa 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 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 un 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. 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.
Maintenant que vous avez créé trois files d'attente Amazon SQS, vous devez les abonner à la rubrique Amazon SNS qui va diffuser les nouvelles demandes de devis d'assurance.
b. La boîte de dialogue S'abonner à une rubrique s'affiche. Dans la liste déroulante Choisir une rubrique, sélectionnez la rubrique Demandes-devis-assurance à laquelle vous souhaitez 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.
Maintenant que toutes les ressources SNS et SQS ont été créées, vous pouvez configurer 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.
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 cliquez sur Modifier.
Cliquez sur la flèche pour modifier la stratégie de filtrage de l'abonnement.
Dans la boîte de dialogue qui s'affiche, saisissez l'objet JSON suivant : {"type_assurance": ["vie"]}
Cliquez sur 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.
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.
b. Créez le premier message en saisissant les valeurs suivantes dans le formulaire :
Pour l'objet, saisissez : Demande de devis d'assurance n° 1.
Pour la structure du message, laissez l'option Charge utile identique pour tous les protocole de diffusion sélectionnée.
Pour le 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 de message :
- Sélectionnez Chaîne dans le champ Type.
- Saisissez type_assurance dans le champ Nom.
- Saisissez auto dans le champ Valeur.
Cliquez sur Publier un message.
c. Vous voilà de nouveau sur la page de la rubrique Demandes-devis-assurance. Cliquez à nouveau sur Publier un message, puis créez un deuxième message en spécifiant 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 protocole 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 de message :
- Sélectionnez Chaîne dans le champ Type.
- Saisissez type_assurance dans le champ Nom.
- Saisissez vie dans le champ Valeur.
Cliquez sur Publier un message.
d. Vous voilà de nouveau sur la page de la rubrique Demandes-devis-assurance. Cliquez à nouveau sur Publier un message, puis créez un deuxième message en spécifiant 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 protocole de diffusion sélectionnée.
Pour le corps du message à envoyer au point de terminaison, saisissez le texte suivant pour représenter une demande de devis d'assurance auto :
Maison de ville, 139 m², Toronto
Dans Attributs de message :
- Sélectionnez Chaîne dans le champ Type.
- Saisissez type_assurance dans le champ Nom.
- Saisissez maison dans le champ Valeur.
Cliquez sur Publier un message.
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 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 SNS correspondant comporte une stratégie de filtrage qui correspond 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.
c. Répétez la procédure pour la deuxième file d'attente. Cochez la case correspondant à la file d'attente Devis-assurance-vie. Dans le menu déroulant Actions sur la file d'attente, sélectionnez Afficher/supprimer des messages.
Cliquez sur Commencer la recherche de messages.
Veuillez noter qu'un autre message relatif à ce devis d'assurance-vie a été envoyé dans cette file d'attente (Demande de devis d'assurance n° 2).
Cliquez sur Fermer.
d. Enfin, cochez la case correspondant à la file d'attente Tous-les-devis. Cliquez sur Actions sur la file d'attente, sélectionnez Afficher/supprimer des messages, puis cliquez sur Commencer la recherche de messages.
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).
Cliquez sur Fermer.
Lors de cette étape, vous allez supprimer les ressources créées pour ce didacticiel, ces dernières incluant une rubriques, des rubriques et des files d'attentes. Une bonne pratique consiste à supprimer les ressources que vous n'utilisez plus pour éviter d'encourir des frais.
Vous pouvez maintenant utiliser le filtrage des messages dans Amazon Simple Notification Service (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. Cette approche élimine la complexité de conception liée à la mise en œuvre de la logique de filtre des messages chez vos abonnés, ou de la logique de routage des messages dans vos systèmes éditeurs.
Maintenant que vous avez appris à mettre en place le filtrage de messages à l'aide d'Amazon Simple Notification 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).
Explorer plus en détails
Consultez le Guide du développeur pour savoir comment mettre en œuvre le filtrage des messages pour vos rubriques SNS.
Tout voir à l'œuvre
Découvrez un exemple illustrant comment mettre en œuvre le filtrage des messages à l'aide du kit SDK AWS pour Python.