我创建了一个通过cloudwatch事件cron触发的lambda函数。 在测试时我发现lambda重试在超时的情况下不起作用。 我想了解预期的行为是什么。如果超时,应该重试吗?
P.S我已经浏览了aws网站上的文件,但仍然无法弄清楚 https://docs.aws.amazon.com/lambda/latest/dg/retries-on-errors.html
答案 0 :(得分:9)
找到关于此的aws文档,
"给定事件源的错误处理取决于Lambda的调用方式。 Amazon CloudWatch Events配置为异步调用Lambda函数。"
" 异步调用 - 异步事件在用于调用Lambda函数之前排队。如果AWS Lambda无法完全处理该事件,它将自动重试调用两次,重试之间会有延迟。"
因此,在这种情况下应该重试。不确定我的lambda函数有什么问题,我刚刚删除并重新创建,这次重试了。
答案 1 :(得分:1)
从the docs you linked to判断,如果lambda函数超时并且超时是因为它正在等待另一个资源(即被网络阻塞),那么它似乎再次被调用:
尝试到达端点时,该功能会超时。
由于cron事件不是基于流的(如果它是同步的或异步的,似乎没有从文档中清楚),它将被重试。