Amazon SNS - AWS Directives prescriptives

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Amazon SNS

Amazon SNS vous permet de créer des rubriques standard et FIFO. Les rubriques sont utilisées pour implémenter une publish/subscribe architecture (pub/sub). Amazon SNS prend en charge différents types d'abonnement, notamment les e-mails, les SMS (en supposant que vous ayez configuré une identité d'origine, telle qu'un numéro gratuit ou un code long à 10 chiffres), les points de terminaison HTTP (S) et les files d'attente SQS. Les abonnements des utilisateurs finaux, tels que les e-mails et les SMS, à une rubrique SNS doivent être confirmés par l'abonné. Amazon SNS permet aux services de se déployer à grande échelle, ce qui signifie qu'un seul message peut être envoyé à un nombre potentiellement important d'abonnés. Une rubrique standard SNS a une limite par défaut de 12,5 millions d'abonnements.

Dans un environnement de microservices, une rubrique SNS est utile pour dissocier le routage des messages et la logique de distribution d'un éditeur. Cela peut être mis en œuvre à l'aide de filtres thématiques. Conceptuellement, les filtres de sujets sont assez similaires aux EventBridge règles d'Amazon, mais ils sont configurés pour chaque abonné au lieu d'être disponibles depuis un emplacement centralisé. Supposons, par exemple, que vous ayez :

  • Un service de commande, qui traite les commandes.

  • Un service de distribution qui gère le traitement des commandes.

  • Un service de fidélité, qui attribue aux membres des points de fidélité pour leurs commandes.

Lorsqu'une commande est prête à être exécutée, elle publie un message dans un sujet. Le service Fulfillment s'abonne au sujet mais n'applique pas de filtre, car il souhaite connaître toutes les commandes. Imaginez que vous avez un service de fidélité, qui est chargé d'attribuer des points aux membres lorsqu'ils passent une commande. Cependant, toutes les commandes ne sont pas passées par les membres. Le service de fidélisation s'abonnerait au sujet mais mettrait en œuvre un filtre d'abonnement pour vérifier un attribut indiquant si la commande était destinée à un membre ou à un invité.

Prenons le cas où un système reçoit une demande d'un utilisateur final pour effectuer un paiement, comme illustré dans le schéma suivant. Dans ce cas, plusieurs systèmes en aval doivent savoir que la demande a été faite afin que diverses actions puissent être entreprises. Lorsque vous utilisez Amazon SNS, les paiements sont publiés sur une rubrique SNS, et les fonctions Lambda s'abonnent à cette rubrique pour mettre à jour les bases de données des clients et des ventes. En outre, un abonnement par e-mail (qui doit être confirmé par le client) envoie un e-mail de confirmation au client à l'aide d'un filtre d'abonnement.

Flux de processus Amazon SNS pour la messagerie dans les microservices.

Conseils

Certaines des fonctionnalités décrites dans cette section pour Amazon SNS recoupent les fonctionnalités proposées par un bus d'événements, telles que. EventBridge Envisagez d'utiliser Amazon SNS dans les cas suivants :

  • Vous aurez un grand nombre d'abonnés à un sujet.

  • Vous souhaitez utiliser des types d'abonnement (tels que les e-mails ou les SMS), qui ne sont pas pris en charge de manière native par EventBridge.

  • Les abonnés doivent être en mesure de déterminer leur filtre d'abonnement.

  • Vous avez besoin d'une livraison commandée aux abonnés (par groupe de messages).

Si vous avez de nombreux sujets et que des abonnements et des filtres sont utilisés pour acheminer les messages entre les microservices, EventBridge c'est probablement le meilleur choix.