我有一个lambda,它根据通过API网关传入的消息的属性发出web请求。当web请求失败时,我会将事件放入队列中,以便稍后处理。
由于请求失败的原因可能是外部服务关闭,因此我希望重试请求,但不是立即重试。
我知道我可以让队列成为lambda的触发器,但我不希望它在新消息到达时立即触发。我宁愿让它等待5分钟左右,然后让SQS触发lambda。
我当前的解决方案有另一个lambda,它由CloudWatch事件触发,从队列中拉出,然后将消息重新发送给发出请求的lambda。我觉得这个解决方案很草率,因为我正在构建一个cloud watch事件和另一个lambda来处理重试。
SQS是否有办法在时间间隔而不是排队时触发Lambda?有没有更好的方法来处理这个问题?
是的,你可以设置 SQS delay queues 延迟至 15分钟 .