如何处理 AWS SNS 的多个环境?

How handle multiple environment for AWS SNS?

我有一台密集使用 AWS SNS 的服务器。当然我有多个环境(开发、QA、生产、定制等)

知道 SNS 只允许您为每个令牌注册一个端点(所以,据我所知,我不能有两个具有相同令牌的不同端点,即使是从不同的 PlatformApplication 创建的),我如何管理不同的端点之间的分离环境?

编辑:我们所有的环境都在同一个 AWS IAM 账户中。

SNS 确实允许您将多个 HTTP/HTTPS 端点订阅到单个主题,但听起来您需要每个环境一个 SNS 主题,以便开发主题将请求分派到开发 HTTP 端点。

2017 年针对多个环境推荐的 AWS 策略是使用多个账户——每个环境一个。您可以为所有帐户使用整合账单。

如果将它们分开,那么您最终会为每个环境创建一个 SNS 主题,并且每个主题都会将请求发布到该环境的适当端点。

单一账户解决方案是为每个环境创建一个主题并更新您的应用程序配置或环境变量以使用适合该环境的 ARN。

如果您的 platformApplication 是 android,那么您可以使用相同的 GCM/FCM 服务器密钥创建多个具有不同名称的 platformApplicationARNs(我希望每个环境一个)认为)。 如果它是 iOS,您将拥有一个应用程序的开发密钥和生产密钥。我怀疑您是否能够使用相同的密钥使用不同的名称创建多个 platformApplicationARN。试试吧,如果它有效,你就定了!

接下来,您应该能够为这些不同的 platformApplicationARNs 中的每一个注册相同的 deviceToken。(我试过了,它成功了)。此行为类似于一个移动设备注册到不同的应用程序以获取通知。