如何从AWS SNS获取发送的通知记录



我正在使用AWS SNS API进行移动通知,

与AWS CloudWatch一起用于消息监控。

目前只有5个指标需要关注:

  • NumberOfMessagesPublished
  • PublishSize
  • NumberOfNotificationsDelivered
  • NumberOfNotificationsFailed
  • SMSSuccessRate

这些似乎都不像消息内容、收件人平台或交付日期/时间。(对营销人员而不是开发者更有意义的内容)

如何查询我发送的所有消息或特定消息的历史记录?

SNS不保留已发送的消息。在发送消息时,您必须自己存档已发送的消息。

一个想法是让SNS自己为你做消息存档,这样你就可以查询存档以获得与你相关的分析。

这可以通过向用于发送这些移动通知的SNS主题订阅kineesis Data Firehose来完成。你可以配置你的Firehose流来存储S3、Redshift、Elasticsearch、Datadog、Splunk、New Relic或MongoDB中的SNS通知。

查看这个:https://aws.amazon.com/about-aws/whats-new/2021/01/amazon-sns-adds-support-for-message-archiving-and-analytics-via-kineses-data-firehose-subscriptions/

SNS是许多类似通知api的包装器。苹果(APNS)和谷歌(大多数Android) GCN的api不提供任何形式的收据确认。

如果你需要收据确认,你必须将其构建到移动设备上的应用程序中,以检查为该应用程序接收的消息,并且也没有通用的方法来做到这一点。另一个问题是,您完全受用户授权通知的支配。

我建议你在应用程序中加入自己的消息传递功能,并将推送通知作为可选的增强功能。为了让徽章正常工作,你还需要与应用程序合作,因为没有办法使用SNS对应用程序中采取的动作做出反应,以清除通知或调整徽章值。

最新更新