AWS Python lambda 在第一次超时后永远超时
AWS Python lambda times out forever after first timeout
问题:
我有一个 python lambda,每秒不断接收数据并将其放入 DynamoDB。我注意到在 DynamoDB 第一次花费更多并且函数超时之后,所有以下调用也超时并且它永远不会恢复。
使 lambda 恢复正常的方法是重新部署它。
当它开始超时时,它不会显示任何日志。没有执行任何代码就超时了。
下面是代表问题的控制台图片。
为了使用此函数更快地重现问题,我执行了以下操作:
- 重新部署它并看到它工作正常。
- 将 lambda 可用的内存减少到最小值,并将超时减少到 1 秒。这会导致第一次超时
- 将lambda的内存增加到正常,甚至增加超时。但是,超时仍然存在
有没有无需重新部署即可解决此问题的方法?
我看到了相同的问题描述,但是 nodejs 在这个 post: https://forums.aws.amazon.com/thread.jspa?threadID=234417.
我还没有看到任何与 python lambda 环境相关的描述
有关设置的更多信息:
Lambda environments tested: python3.6 and python3.7
Tool to deploy lambda: serverless 1.57.0
serverless plugins used: serverless-python-requirements, serverless-wsgi
I am not using any VPC for the lambda
感谢您的帮助,
找出错误的触发因素。
上传的lambda函数zip过大时,第一次超时后,再也无法恢复!
我的解决方案是仔细去除不必要的依赖项,使包更小。
我使用 docker 容器创建了一个存储库,以便人们更轻松地重现问题:
https://github.com/pedrohbtp/bug-aws-lambda-infinite-timeout
感谢评论中的留言。我感谢任何花时间尝试在这里提供帮助的人。
问题:
我有一个 python lambda,每秒不断接收数据并将其放入 DynamoDB。我注意到在 DynamoDB 第一次花费更多并且函数超时之后,所有以下调用也超时并且它永远不会恢复。 使 lambda 恢复正常的方法是重新部署它。 当它开始超时时,它不会显示任何日志。没有执行任何代码就超时了。
下面是代表问题的控制台图片。
为了使用此函数更快地重现问题,我执行了以下操作:
- 重新部署它并看到它工作正常。
- 将 lambda 可用的内存减少到最小值,并将超时减少到 1 秒。这会导致第一次超时
- 将lambda的内存增加到正常,甚至增加超时。但是,超时仍然存在
有没有无需重新部署即可解决此问题的方法?
我看到了相同的问题描述,但是 nodejs 在这个 post: https://forums.aws.amazon.com/thread.jspa?threadID=234417.
我还没有看到任何与 python lambda 环境相关的描述
有关设置的更多信息:
Lambda environments tested: python3.6 and python3.7
Tool to deploy lambda: serverless 1.57.0
serverless plugins used: serverless-python-requirements, serverless-wsgi
I am not using any VPC for the lambda
感谢您的帮助,
找出错误的触发因素。 上传的lambda函数zip过大时,第一次超时后,再也无法恢复!
我的解决方案是仔细去除不必要的依赖项,使包更小。
我使用 docker 容器创建了一个存储库,以便人们更轻松地重现问题:
https://github.com/pedrohbtp/bug-aws-lambda-infinite-timeout
感谢评论中的留言。我感谢任何花时间尝试在这里提供帮助的人。