使用 Amazon MQ 和 Lambda 函数确认消息接收

问题描述

我有一个由运行 ActiveMQ 的 Amazon MQ 触发的 Lambda 函数

我希望我的 Lambda 函数在消息处理完毕后确认收到消息,以便 ActiveMQ 可以将其从队列或主题删除

我在 AWS 上找不到任何相关文档来告诉我应该如何发回该确认,或者 ActiveMQ 如何知道消费者何时成功处理了消息。

有什么想法吗?

解决方法

如果 Lambda 使用 their documentation 中所述的 OpenWire JMS 客户端,那么它必须使用 JMS 提供的一种确认模式(即 AUTO_ACKNOWLEDGECLIENT_ACKNOWLEDGE 或 {{1 }})。但是,我在文档中没有看到他们使用的模式以及可以更改的任何方式的任何指示。因此,我的猜测是他们正在使用 DUPS_OK_ACKNOWLEDGE,因为这通常是集成框架等默认使用的。如果这是真的,那么您的 Lambda 函数无需执行任何操作。 OpenWire JMS 客户端将自动确认该消息。