As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Amazon SNS
O Amazon SNS permite que você crie tópicos comuns e FIFO. Os tópicos são usados para implementar uma arquitetura de publicação/subscrição (pub/sub). O Amazon SNS oferece suporte a vários tipos de assinatura, incluindo e-mail, SMS (supondo que você tenha configurado uma identidade de origem, como um número gratuito ou um código longo de 10 dígitos), endpoint HTTP(S) e filas SQS. As assinaturas de usuários finais, como mensagens de e-mail e SMS, para um tópico do SNS devem ser confirmadas pelo assinante. O Amazon SNS permite que os serviços sejam amplamente disseminados, o que significa que uma única mensagem pode ser entregue a um número potencialmente grande de assinantes. Um tópico padrão do SNS tem um limite padrão de 12,5 milhões de assinaturas.
Em um ambiente de microsserviços, um tópico do SNS é útil para separar o roteamento de mensagens e a lógica de entrega de um editor. Isso pode ser implementado usando filtros de tópicos. Conceitualmente, os filtros de tópicos são semelhantes às regras do Amazon EventBridge, mas são configurados para cada assinante, em vez de estarem disponíveis em um local centralizado. Por exemplo, digamos que você tenha:
-
Um serviço de pedidos, que processa pedidos.
-
Um serviço de logística, que lida com a logística de pedidos.
-
Um serviço de fidelidade, que concede pontos de fidelidade aos membros por pedidos.
Quando um pedido está pronto para ser atendido, ele publica uma mensagem em um tópico. O serviço de logística assina o tópico, mas não aplica um filtro, pois deseja saber sobre todos os pedidos. Imagine que você tem um serviço de fidelidade, responsável por conceder pontos aos membros quando eles fazem um pedido. No entanto, nem todos os pedidos são feitos por membros. O serviço de Fidelidade se inscreveria no tópico, mas implementaria um filtro de inscrição para verificar um atributo que indica se o pedido foi feito por um membro ou por um convidado.
Considere o caso em que um sistema recebe uma solicitação de um usuário final para efetuar um pagamento, conforme ilustrado no diagrama a seguir. Nesse caso, vários sistemas downstream precisam saber que a solicitação foi feita para que várias ações possam ser realizadas. Quando você usa o Amazon SNS, os pagamentos são publicados em um tópico do SNS, e as funções do Lambda se inscrevem no tópico para atualizar os bancos de dados de clientes e vendas. Além disso, uma inscrição de e-mail (que deve ser confirmada pelo cliente) envia um e-mail de confirmação ao cliente usando um filtro de inscrição.
Orientação
Algumas das funcionalidades descritas nesta seção para o Amazon SNS se sobrepõem às funcionalidades oferecidas por um barramento de eventos, como o EventBridge. Considere usar o Amazon SNS quando:
-
Você terá um grande número de assinantes para um tópico.
-
Você deseja usar tipos de inscrição (como e-mail ou SMS) que não são compatíveis nativamente com o EventBridge.
-
Os assinantes devem poder determinar seu filtro de assinatura.
-
É necessário solicitar a entrega ordenada aos assinantes (por grupo de mensagens).
Se você tiver muitos tópicos e assinaturas e filtros estiverem sendo usados para encaminhar mensagens entre microsserviços, o EventBridge provavelmente será a melhor opção.