用于从队列中插入和移除的 SQS 日志记录
SQS Logging for insertion and removal from queue
我在 producer/consumer 上下文中为我的应用程序使用 Amazon SQS。我想启用队列级别日志记录,我可以在其中看到项目放入队列并稍后从中删除。我该怎么做?
我已阅读以下内容:
但是,这不足以满足我的用例。我们不允许对 AWS 队列执行此操作吗?
仅使用 SQS 无法实现您想要实现的目标。可能的解决方案包括:
- 在生产者和 SQS 队列之间实施一些中间件 API。 API 级别将记录来自生产者的请求。
- 使用 Kinesis 而不是 SQS。 Kinesis 允许您 replay/analyze 过去 24 小时内创建的记录。
- 在消费者中实现日志记录。
- 使用 Lambda 函数(在 CloudWatch 事件规则触发器的帮助下)每分钟读取一次 SQS 队列,记录记录并将它们放入另一个 SQS 队列以供消费者稍后处理。
- 使用允许日志记录的不同类型的队列。例如,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 运行 的具体内容和时间。
我在 producer/consumer 上下文中为我的应用程序使用 Amazon SQS。我想启用队列级别日志记录,我可以在其中看到项目放入队列并稍后从中删除。我该怎么做?
我已阅读以下内容:
但是,这不足以满足我的用例。我们不允许对 AWS 队列执行此操作吗?
仅使用 SQS 无法实现您想要实现的目标。可能的解决方案包括:
- 在生产者和 SQS 队列之间实施一些中间件 API。 API 级别将记录来自生产者的请求。
- 使用 Kinesis 而不是 SQS。 Kinesis 允许您 replay/analyze 过去 24 小时内创建的记录。
- 在消费者中实现日志记录。
- 使用 Lambda 函数(在 CloudWatch 事件规则触发器的帮助下)每分钟读取一次 SQS 队列,记录记录并将它们放入另一个 SQS 队列以供消费者稍后处理。
- 使用允许日志记录的不同类型的队列。例如,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 运行 的具体内容和时间。