当由cloudwatch事件触发时,Aws lambda重试行为

时间:2018-02-09 14:02:42

标签: amazon-web-services aws-lambda

我创建了一个通过cloudwatch事件cron触发的lambda函数。 在测试时我发现lambda重试在超时的情况下不起作用。 我想了解预期的行为是什么。如果超时,应该重试吗?

P.S我已经浏览了aws网站上的文件,但仍然无法弄清楚  https://docs.aws.amazon.com/lambda/latest/dg/retries-on-errors.html

2 个答案:

答案 0 :(得分:9)

找到关于此的aws文档,

"给定事件源的错误处理取决于Lambda的调用方式。 Amazon CloudWatch Events配置为异步调用Lambda函数。"

" 异步调用 - 异步事件在用于调用Lambda函数之前排队。如果AWS Lambda无法完全处理该事件,它将自动重试调用两次,重试之间会有延迟。"

因此,在这种情况下应该重试。不确定我的lambda函数有什么问题,我刚刚删除并重新创建,这次重试了。

答案 1 :(得分:1)

the docs you linked to判断,如果lambda函数超时并且超时是因为它正在等待另一个资源(即被网络阻塞),那么它似乎再次被调用:

  

尝试到达端点时,该功能会超时。

由于cron事件不是基于流的(如果它是同步的或异步的,似乎没有从文档中清楚),它将被重试。