【发布时间】:2022-08-24 07:41:00
【问题描述】:
目的:我创建了一个 SQS 队列,希望将不良数据存储到死信队列中。我的目标是将 SQS 连接到 SNS,以便订阅者可以收到有关存储在死信队列中的不良数据的通知。
但是,我现在了解到,由于 SQS 的保留期,数据不能通过 SQS 永久存储。我也了解 SNS 以 PUSH 而不是 PULL 着称,因此它无法接收 SQS 消息并将这些消息通过电子邮件发送给订阅者
所以,我的问题是,有什么方法可以永久保留来自 SQS 的消息?我的目标是将这些消息安全地存储在某个地方以备将来使用。我还研究了将消息存储到 S3 中。
-
好吧,S3 或 DynamoDB 或任何持久性存储都应该可以工作。但你似乎已经知道了。这里有一个特别的问题吗?
-
如果您想从 SQS 中提取并发布到 SNS,请参阅 here。
-
@jarmod 谢谢!我一直对如何将这些 sqs 消息发送到 s3 感到困惑。谷歌搜索后,我也有点困惑。所以,我想在这里确认这是否是可能的解决方案。另外,我会试试你发送的链接
-
没有将消息从 SQS 移动到 S3 afaik 的 AWS 原生功能,但如果我正确阅读了您的问题,听起来您的消息可能根本不在 SQS 中。那正确吗?它们在其他地方,但您正在考虑将它们发送到 SQS 以保持持久性,但这不会起作用,所以现在您正在考虑将它们发送到 SQS,然后从那里发送到 S3 或通过 SNS 发送到订阅者。是的,你可以很容易地做到这两点,但你也可以直接从它们当前所在的任何地方(在你的应用程序中?)将它们发送到 S3,当你检测到它们不好时。
-
@jarmod 好的,这很有趣!我的消息目前仅在 SQS 中,但是我正在尝试将消息移动到某处(S3 或 SNS)。我的目标是将 S3 或 SNS 通知视为死信队列。
标签: amazon-web-services aws-lambda pipeline amazon-sqs amazon-sns