【发布时间】:2020-03-03 03:22:43
【问题描述】:
问题:
我有一个 python lambda,它每秒不断地接收数据并将其放入 DynamoDB。我注意到,在第一次 DynamoDB 需要更多时间并且函数超时后,以下所有调用也超时并且它永远不会恢复。 使 lambda 恢复正常的方法是重新部署它。 当它开始超时时,它不显示任何日志。没有执行任何代码就超时了。
下面是代表问题的控制台图片。
为了使用此功能更快地重现问题,我执行了以下操作:
- 重新部署它,看看它工作正常。
- 将 lambda 可用的内存减少到最小值,并将超时时间减少到 1 秒。这将导致第一次超时
- 将 lambda 的内存恢复到正常状态,甚至增加超时。但是,超时仍然存在
有没有办法解决这个问题而无需重新部署?
我在这篇文章中看到了与 nodejs 相同的问题描述:https://forums.aws.amazon.com/thread.jspa?threadID=234417。
我没有看到任何与 python lambda env 相关的描述
有关设置的更多信息:
经过测试的 Lambda 环境: python3.6 和 python3.7
部署 lambda 的工具: serverless 1.57.0
使用的无服务器插件: serverless-python-requirements, serverless-wsgi
我不为 lambda 使用任何 VPC
感谢您的帮助,
【问题讨论】:
-
Lambda 函数在做什么?可以分享一下代码吗? Lambda 函数的日志中是否有与您的问题相关的任何错误或其他信息?
-
我不能分享代码,但它相当简单。它是一个将数据放入 dynamoDB 的小型 lambda。我在这里看到有人抱怨 nodejs 存在同样的问题:forums.aws.amazon.com/thread.jspa?threadID=234417。但我还没有看到任何与 Python 相关的东西。超时时没有日志。它甚至没有启动正常的代码。
-
请尝试分享一个小示例,删除所有显示此问题的敏感部分。这其中的 WSGI 部分是不寻常的,因此对于我们这些不将 WSGI 与无服务器 Python 一起使用的人来说,尝试重现会很困难。
-
将尝试将其隔离并放入存储库以便其他人可以访问
-
检查您的 DynamoDB 指标是否受到限制。
标签: python amazon-web-services aws-lambda serverless-framework serverless