问题描述
我正在通过AWS构建服务,但无法弄清楚如何通过http(s)将webhook发送给我的客户。
似乎一种解决方案是为每个人创建一个SNS主题,然后为他们订阅该主题的URL,但是我一直认为这是一个过分的解决方案。.我的意思是,一个主题,每个客户端都有一个URL ..
是否存在SNS解决方案,该解决方案使我可以使用HTTP直接将消息发送到URL?无需为每个客户端创建主题,然后将其URL订阅该主题?
非常感谢
解决方法
您绝对不需要每个订阅者一个主题。您可以使用一个主题,并将所有客户端HTTP端点订阅到该主题。不仅如此,您还可以在同一个主题(HTTP / HTTPS,电子邮件等)中使用多个传递协议,这意味着您可以将相同的消息发送到多个端点,每个端点都使用相同或不同的协议。
在AWS控制台中,转到SNS
-> Topics
-> Create Topic
,然后创建一个主题。然后转到SNS
-> Subscriptions
并创建订阅(您需要指定主题的arn,要使用的协议和端点地址)。您将需要为每个端点创建一个订阅。完成后,转到SNS
-> Topics
->选择您之前创建的主题。您将在Subscriptions
标签下看到所有订阅,该标签默认为打开状态。
或者您可以使用aws sns cli创建这些订阅。
aws sns subscribe
--topic-arn <value>
--protocol <value>
[--notification-endpoint <value>]
并按主题列出订阅:
aws sns list-subscriptions-by-topic
--topic-arn <value>