第一次超时后,AWS Python Lambda会永远超时

问题:

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

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

第一次超时后,AWS Python Lambda会永远超时

为了使用此功能更快地重现问题,我做了以下事情:

  1. 重新部署它,并查看它是否工作正常。
  2. 将可用于lambda的内存减少到最小,并将超时减少到1秒。这将导致第一次超时
  3. 将lambda的内存增加回正常,甚至增加超时。但是,超时仍然存在

是否有无需重新部署即可解决此问题的方法?

在这篇文章中,我看到了与问题相同的描述,但使用 nodejs https://forums.aws.amazon.com/thread.jspa?threadID=234417

我还没有看到与python lambda env相关的任何描述

有关设置的更多信息:

  

Lambda环境经过测试: python3.6和python3.7

     

用于部署lambda的工具:无服务器1.57.0

     

使用无服务器插件 serverless-python-requirements,serverless-wsgi

     

使用任何VPC作为lambda

感谢您的帮助,

hopelove1983 回答:第一次超时后,AWS Python Lambda会永远超时

找出错误的触发原因。 如果上载的lambda函数zip太大,则第一次超时后就无法恢复!

我的解决方案是仔细去除不必要的依赖关系,以使程序包更小。

我使用docker容器创建了一个存储库,以便人们更轻松地重现该问题:

https://github.com/pedrohbtp/bug-aws-lambda-infinite-timeout

感谢评论中的消息。我感谢任何花时间尝试在SO中提供帮助的人。

本文链接:https://www.f2er.com/3150889.html

大家都在问