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

How to get sent notification records from AWS SNS?

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

连同 AWS CloudWatch 用于消息监控。

目前只有5 metrics个可以观看:

None 其中似乎是消息内容、收件人平台或已发送 date/time。 (对营销人员而不是开发人员更有意义的内容)

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

SNS 不保留已发送的消息。您必须在发送邮件时自行存档已发送的邮件。

SNS 是许多类似通知 API 的包装器。 Apple (APNS) 和 Google(大多数 Android)GCN 的 API 不提供任何类型的收据确认。

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

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

一个想法是让 SNS 本身为您归档消息,这样您就可以在归档中查询与您相关的分析。

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

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