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 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 »

 

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.

tmt_filter-messages-sent-to-topics_1a

(cliquer pour zoomer)

tmt_filter-messages-sent-to-topics_1a

b.  Si la page d'accueil de la console SNS s'affiche, cliquez sur Commencer par un aperçu. Si cette page ne s'affiche pas, passez à l'étape suivante.

1b-console-home

(cliquer pour zoomer)

1b-console-home

c.  Cliquez sur Rubriques dans le menu de gauche.

1c-create-topic-nav-open

(cliquer pour zoomer)

1c-dashboard

d.  Cliquez sur Créer une rubrique.

 

1d-No-topics

(cliquer pour zoomer)

1d-No-topics

e.  Dans le champ Nom de la rubrique, saisissez Demandes-devis-assurances, puis faites défiler et cliquez sur Créer une rubrique.

 

1e-create-topic-nav-closed

(cliquer pour zoomer)

1e-create-topic-nav-closed

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

 

1f-topic-insurence-quote-request-created-success

(cliquer pour zoomer)

1f-topic-insurence-quote-request-created-success

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.

 

tmt_filter-messages-sent-to-topics_2a

(cliquez pour zoomer)

tmt_filter-messages-sent-to-topics_2a

b.  Sur la page Créer une nouvelle file d'attente, saisissez Devis-assurance-véhicule dans le champ Nom de la file d'attente.

Laissez File d'attente standard sélectionné et cliquez sur Création rapide de la file d'attente.

 

tmt_filter-messages-sent-to-topics_2b

(cliquer pour zoomer)

tmt_filter-messages-sent-to-topics_2b

c.  Cliquez sur Créer une nouvelle file d'attente et répétez l'étape 2b afin de créer deux files d'attente supplémentaires :
Devis-assurance-vie
  et Tous-les-devis.

 

tmt_filter-messages-sent-to-topics_2c

(cliquer pour zoomer)

tmt_filter-messages-sent-to-topics_2c

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

 

tmt_filter-messages-sent-to-topics_2d

(cliquer pour zoomer)

tmt_filter-messages-sent-to-topics_2d

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.


a.  Dans la liste des files d'attente, sélectionnez les files d'attente Devis-assurance-véhicule, Devis-assurance-vie et Tous-les-devis.

Cliquez sur Actions sur les files d'attente et sélectionnez Souscrire les files d'attente à la rubrique SNS.

 

 

tmt_filter-messages-sent-to-topics_3a

(cliquer pour zoomer)

tmt_filter-messages-sent-to-topics_3a

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.

 

 

tmt_filter-messages-sent-to-topics_3b

(cliquer pour zoomer)

tmt_filter-messages-sent-to-topics_3b

c.  Ne touchez pas à Région de la rubrique et cliquez sur Abonnement.  

 

 

tmt_filter-messages-sent-to-topics_3c

(cliquer pour zoomer)

tmt_filter-messages-sent-to-topics_3c

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

tmt_filter-messages-sent-to-topics_3d

(cliquer pour zoomer)

tmt_filter-messages-sent-to-topics_3d

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.


a.  Revenez à la console Amazon SNS dans votre autre fenêtre de navigateur, puis cliquez sur Rubriques pour rechercher la liste de toutes vos rubriques dans la région.

Cliquez sur le nom de la rubrique Demandes-devis-assurance dans la liste.  

4a-topic-list

(cliquer pour zoomer)

4a-topic-list

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 Demandes-assurance-véhicule, puis cliquez sur Modifier.

4b-topic-detail-insurance-quote-request

(cliquer pour zoomer)

4b-topic-detail-insurance-quote-request

c.  Vous accédez ainsi à la page Modifier l'abonnement. Cliquez sur la flèche pour modifier la stratégie de filtrage de l'abonnement. 

4c-edit-sub-insurance-quote-request

(cliquer pour zoomer)

4c-edit-sub-insurance-quote-request

d.  Dans la boîte de dialogue qui s'affiche, saisissez l'objet JSON suivant : {"type_assurance": ["auto", "bateau"]}

Cliquez sur Enregistrer les modifications.

4d-topic-edit-filter-car-boat

(cliquer pour zoomer)

4d-topic-edit-filter-car-boat

e.  Une boîte de dialogue de confirmation s'affiche afin de confirmer que la stratégie de filtrage de l'abonnement a bien été créée.

 

4e-sub-saved-success

(cliquer pour zoomer)

4e-sub-saved-success

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.

4f-topic-edit-filter-life

(cliquer pour zoomer)

4f-topic-edit-filter-life

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, cliquez sur Publier un message.

5a-topic-detail-with-3subs-2

(cliquer pour zoomer)

5a-topic-detail-with-3subs-2

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.

5b-publish-message-montreal-address

(cliquer pour zoomer)

5b-publish-message-montreal-address

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.

5c-publish-message-male33

(cliquer pour zoomer)

5c-publish-message-male33

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.

5d-publish-message-toronto-address

(cliquer pour zoomer)

5d-publish-message-toronto-address

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.


a.  Retournez à la console Amazon SQS. Sélectionnez la file d'attente Devis-assurance-véhicule et cliquez sur Actions sur la file d'attente.

Sélectionnez Afficher/supprimer des messages.  

tmt_filter-messages-sent-to-topics_6a

(cliquer pour zoomer)

tmt_filter-messages-sent-to-topics_6a

b.  Cliquez sur Commencer la recherche de messages.

Veuillez noter qu'un seul message relatif à ce devis d'assurance auto a été envoyé dans cette file d'attente (Demande de devis d'assurance n° 1). Fermez la boîte de dialogue.

tmt_filter-messages-sent-to-topics_6b

(cliquer pour zoomer)

tmt_filter-messages-sent-to-topics_6b

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.

tmt_filter-messages-sent-to-topics_6c

(cliquer pour zoomer)

tmt_filter-messages-sent-to-topics_6c

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.

tmt_filter-messages-sent-to-topics_6d

(cliquer pour zoomer)

tmt_filter-messages-sent-to-topics_6d

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.


a.  Dans la console Amazon SNS, cliquez sur Rubriques, puis sur le lien de la rubrique Demandes-devis-assurance.

Étape 7a

(cliquer pour zoomer)

Étape 7a

b.  Sur la page de présentation de la rubrique Demandes-devis-assurance, sélectionnez chacun des abonnements et cliquez sur Supprimer.

Cliquez sur Supprimer dans la boîte de dialogue pour confirmer la suppression. 

7b-topic-detail-with-3subs

(cliquer pour zoomer)

7b-topic-detail-with-3subs

c.  Sur la page de présentation de la rubrique Demandes-devis-assurance, cliquez sur Supprimer.

Confirmez la suppression en saisissant delete me dans la boîte de dialogue, puis cliquez sur Supprimer

 

7c-topic-detail-no-sub

(cliquer pour zoomer)

7c-topic-detail-no-sub

d.  Retournez à la console Amazon SQS. Sélectionnez les trois files d'attente utilisées dans ce didacticiel et cliquez sur Actions sur la file d'attente, puis sur Supprimer les files d'attente.

Confirmez la suppression dans la boîte de dialogue.

tmt_filter-messages-sent-to-topics_7d

(cliquer pour zoomer)

tmt_filter-messages-sent-to-topics_7d

e.  Vous pouvez désormais vous déconnecter d'AWS Management Console.  

tmt_filter-messages-sent-to-topics_7e

(cliquer pour zoomer)

tmt_filter-messages-sent-to-topics_7e

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

Visiter la page web Amazon SNS »

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.

Lire la documentation »

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.

Lire le blog »

Oui
Non