如何使用单个 AWS 简单通知服务 ARN 来定位 APN 和 FCM
Posted
技术标签:
【中文标题】如何使用单个 AWS 简单通知服务 ARN 来定位 APN 和 FCM【英文标题】:How do i target APN and FCM with a single AWS Simple Notifiction Service ARN 【发布时间】:2021-04-23 15:31:18 【问题描述】:尝试将 AWS SNS 推送通知集成到移动应用程序(ios 和 android),但我不清楚如何实现这一点。
根据AWS guide,第一步是创建一个平台应用程序端点,可以是Apple、FCM、Baidu ...没有任何选项可以选择多个目标平台。
在完成所有步骤后,我观察到 FCM 平台的 SNS ARN 如下所示:
arn:aws:sns:us-west-2:8xxxxxxx:endpoint/GCM/app_name/
问题是
它仅在给定设备令牌时仅将发布的通知转发到 android 设备。
如果我对 APN 采用相同的方法,我将获得另一个适用于 ios 的 SNS ARN,它看起来资源不足,并且会导致向两个平台发送推送通知的冗余代码,以及设备端点的重复数据,我会必须为单个设备的 ios 和 android 创建设备端点
如何使用 AWS Simple Notification Service 向 android 和 ios 应用程序发布推送通知?
【问题讨论】:
【参考方案1】:注册的每个单独设备都将获得自己的 SNS 端点 ARN。当您调用 SNS Publish API 时,Android 和 iOS 设备也需要将different payloads 发送给它们。
许多系统都希望通过 ID 查找用户,并向他们的设备发送消息。一个常见的模式是创建一个 DynamoDB 表来跟踪一些信息:
-
SNS 端点 ARN
设备类型
与拥有设备的用户关联的 ID
在您的 iOS 和 Android 设备成功向 SNS 注册其设备令牌后,您应该安排将此信息存储在您的数据库中。
【讨论】:
以上是关于如何使用单个 AWS 简单通知服务 ARN 来定位 APN 和 FCM的主要内容,如果未能解决你的问题,请参考以下文章
如何在 AWS Device Farm CLI 上的设备池中添加单个设备?
如何使用 Amazon 资源名称 (ARN) 作为标识符来查找亚马逊资源?
无服务器调用错误:“无权执行:dynamodb:BatchWriteItem on resource:arn:aws:...”