让 CloudWatch 事件触发 SQS 发送到 Lambda

Having a CloudWatch Event trigger an SQS send to Lambda

我有一个 lambda,它根据通过 API 网关传入的消息的属性发出 Web 请求。当 Web 请求失败时,我将事件放入队列中以供稍后处理。

由于请求失败的原因可能是外部服务已关闭,我想重试请求,但不是立即重试。

我知道我可以让队列成为 lambda 的触发器,但我不希望它在新消息到达时立即触发。我宁愿让它等待 5 分钟左右,然后让 SQS 触发 lambda。

我当前的解决方案有另一个 lambda,它由 CloudWatch 事件触发,从队列中拉出,然后将消息重新发送到发出请求的 lambda。我觉得这个解决方案很草率,因为我正在构建一个云监视事件和另一个 lambda 来处理重试。

有没有办法让 SQS 在时间间隔而不是在排队时触发 Lambda?有没有更好的方法来处理这个问题?

Is there a way for the SQS to trigger the Lambda on a time interval rather than on enqueue? Is there a better way to handle this?

是的,您可以设置 SQS delay queues 最多延迟 15 分钟