用于从队列中插入和移除的 SQS 日志记录

SQS Logging for insertion and removal from queue

我在 producer/consumer 上下文中为我的应用程序使用 Amazon SQS。我想启用队列级别日志记录,我可以在其中看到项目放入队列并稍后从中删除。我该怎么做?

我已阅读以下内容:

http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/logging-using-cloudtrail.html

但是,这不足以满足我的用例。我们不允许对 AWS 队列执行此操作吗?

仅使用 SQS 无法实现您想要实现的目标。可能的解决方案包括:

  1. 在生产者和 SQS 队列之间实施一些中间件 API。 API 级别将记录来自生产者的请求。
  2. 使用 Kinesis 而不是 SQS。 Kinesis 允许您 replay/analyze 过去 24 小时内创建的记录。
  3. 在消费者中实现日志记录。
  4. 使用 Lambda 函数(在 CloudWatch 事件规则触发器的帮助下)每分钟读取一次 SQS 队列,记录记录并将它们放入另一个 SQS 队列以供消费者稍后处理。
  5. 使用允许日志记录的不同类型的队列。例如,Redis 有 MONITOR 命令。

除了 Sergey Kovalev 的回答,现在还有 option 由 SQS 事件触发的 Lambda 函数。

您只需:

select the SQS queue you want as the event source for your Lambda function

我理解你的痛苦。即使我遇到 SQS 未按预期运行的问题,我也在寻找日志以了解问题。

SQS 不发布日志,所有 SQS API 都是同步的,因此客户端会得到适当的响应。

上面提到的解决方案是解决方法 其中,在 produce 和 consumer 处使用 Loggin 可能帮助不大。因为在我的例子中,我确实在生产者和消费者上进行了日志记录,但仍然无法看到 SQS 运行 的具体内容和时间。