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

时间:2016-12-13 00:54:19

标签: amazon-web-services amazon-sqs

我在生产者/消费者环境中使用Amazon SQS作为我的应用程序。我想启用队列级别日志记录,我可以看到放在队列中的项目以及稍后从中删除的项目。我怎么能这样做?

我已阅读以下内容:

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

但是,这对我的用例来说还不够。我们不允许使用AWS队列执行此操作吗?

3 个答案:

答案 0 :(得分:4)

只有SQS才能实现您想要实现的目标。可能的解决方案包括:

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

答案 1 :(得分:1)

除了谢尔盖·科瓦列夫(Sergey Kovalev)的答案外,现在还有一个option,可让SQS事件触发Lambda函数。

您只需:

  

选择所需的SQS队列作为Lambda函数的事件源

答案 2 :(得分:1)

我了解你的痛苦。甚至我遇到了SQS表现不如预期的问题,并且我正在寻找日志来了解问题。

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

上述解决方案是解决方法 其中对生产者和消费者来说都有Loggin可能没有太大帮助。因为就我而言,我确实曾经在生产者和消费者处进行过日志记录,但是仍然确切地遇到了SQS,什么时候不可见。