我有一个SQS队列(Q),它通过onFailure
"目的地"接收消息。Lambda函数是由EventBridge事件总线规则触发的。
我的问题是:我可以配置队列Q的重驱动策略,以便我可以直接重驱动消息到功能F吗?
目前,我已经将重驱允许策略设置为allowAll
,但是"启动DLQ重驱"按钮在控制台中被禁用。查看驱动器允许策略的配置设置,我感觉只有其他队列可以成为重新驱动器的目标。
让我困惑的是,我在这里的目标是使用"destinations"的onFailure
函数。特性。只有当异步调用函数并且队列同步触发lambdas时,才能使用目的地。因此,如果我要在lambda函数F前面放置一个队列,它可能是重新驱动的目标,那么我将无法使用onFailure
目的地。
使用redrive将事件有效负载从Queue Q发送到Lambda F是不可能的。Redrive的工作原理是将消息从DLQ发送回源队列,而不是直接发送到Lambda目标。还要考虑SQS消息结构与EventBridge事件的不同,这会使Lambda感到困惑。
检查事件重放作为备选方案。或者添加一个Lambda来定期从DLQ读取并重新提交事件。