AWS Python lambda 在第一次超时后永远超时

AWS Python lambda times out forever after first timeout

问题:

我有一个 python lambda,每秒不断接收数据并将其放入 DynamoDB。我注意到在 DynamoDB 第一次花费更多并且函数超时之后,所有以下调用也超时并且它永远不会恢复。 使 lambda 恢复正常的方法是重新部署它。 当它开始超时时,它不会显示任何日志。没有执行任何代码就超时了。

下面是代表问题的控制台图片。

为了使用此函数更快地重现问题,我执行了以下操作:

  1. 重新部署它并看到它工作正常。
  2. 将 lambda 可用的内存减少到最小值,并将超时减少到 1 秒。这会导致第一次超时
  3. 将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

感谢评论中的留言。我感谢任何花时间尝试在这里提供帮助的人。