我正在尝试将SNS主题订阅到我拥有的HTTPS端点。我正在阅读有关如何处理来自SNS的传入消息以及如何完成订阅确认的文档。我看到两种确认方法:
https://docs.aws.amazon.com/sns/latest/dg/sns-http-https-endpoint-as-subscriber.html-使用subscriptionURL。我们可以对“ SubscribeURL”属性值执行HTTP get请求,这将确认订阅。
调用ConfirmSubscription API-当SNS向SNS端点发送确认订阅消息时,我们传递SNS主题ARN和收到的令牌。
我试图了解这两种方法之间的区别。对我来说,最显而易见的是-使用API的选择将需要AWS凭证,因为需要对请求进行签名。但是似乎同一调用仅通过HTTP GET请求就能成功吗?
目前的最佳实践是什么(如果有),和/或其他人使用AWS / SNS遵循的是哪种方法?
答案 0 :(得分:0)
在SNS与端点进行对话之前,您需要证明自己控制了该端点。因此,您的选择是编写一些可以自动执行的代码(大多数SDK支持此功能)或捕获令牌,并通过API调用返回该令牌以证明您可以控制它。
这是一次性过程,因此您无需将任何AWS凭证部署到您的API终端节点-您可以在其他系统上进行。
我们通常在应用程序中内置确认处理程序。
答案 1 :(得分:0)
没有区别-这两个选择实际上是同一件事。
SubscribeURL
属性是(通过服务)到SNS API端点上的ConfirmSubscription
操作的预先构造的链接。
API接受GET或POST。在这种情况下,无需签名。
仅当
AuthenticateOnUnsubscribe
标志设置为“ true”时,此调用才需要AWS签名。https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html