Amazon web services 如何将来自Amazon SNS的失败消息保存到Amazon S3中

Amazon web services 如何将来自Amazon SNS的失败消息保存到Amazon S3中,amazon-web-services,amazon-sns,Amazon Web Services,Amazon Sns,我想知道,在给定的时间窗口内,是否有可能将SNS主题中所有未确认的消息持久保存到S3文件中。这些消息不一定需要遵循S3文件中的原始顺序,时间戳属性就足够了。没有内置功能将消息从Amazon SNS保存到Amazon S3 然而,本周AWS为亚马逊SNS引入了死信队列 发件人: 您现在可以将死信队列(DLQ)设置为Amazon简单通知服务(SNS)订阅,以捕获无法传递的消息。Amazon SNS DLQ通过存储消息使您的应用程序更具弹性和持久性,以防无法访问您的订阅端点。 Amazon SNS D

我想知道,在给定的时间窗口内,是否有可能将SNS主题中所有未确认的消息持久保存到S3文件中。这些消息不一定需要遵循S3文件中的原始顺序,时间戳属性就足够了。

没有内置功能将消息从Amazon SNS保存到Amazon S3

然而,本周AWS为亚马逊SNS引入了死信队列

发件人:

您现在可以将死信队列(DLQ)设置为Amazon简单通知服务(SNS)订阅,以捕获无法传递的消息。Amazon SNS DLQ通过存储消息使您的应用程序更具弹性和持久性,以防无法访问您的订阅端点。

Amazon SNS DLQ是标准的Amazon SQS队列


因此,如果Amazon SNS无法传递消息,它可以自动将其发送到Amazon SQS队列。您可以稍后查看/处理这些失败的消息。例如,您可以创建一个AWS Lambda函数,当消息到达死信队列时触发该函数。然后,该函数可以将消息存储在Amazon S3中。

如果您只想将发布到SNS主题的所有消息保存在S3存储桶中,那么您只需订阅SNS主题AWS事件分叉管道即可进行存储和备份:


**2021年1月更新:SNS现在支持Kinesis Data Firehose作为本机订阅类型

什么是“未确认的消息”?说“未确认”是指“我还没有消费的消息”。一旦我消费了这些消息并保存到S3,我将“确认”它们。消息不会从Amazon SNS“消费”。相反,亚马逊SNS向订户发送信息。我不确定我是否理解你的答案。我想要的是保存所有到达我的SNS主题的新消息,并每X分钟将其保存到一个S3文件中。