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

2024-09-28 22:11:34 发布

您现在位置:Python中文网/ 问答频道 /正文

问题:

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

下面是我们的控制台的图片,代表了这个问题。你知道吗

aws lambda console

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

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

有没有办法解决这个问题而不必重新部署?

我在这篇文章中看到了对问题的相同描述,但是nodejs:https://forums.aws.amazon.com/thread.jspa?threadID=234417。你知道吗

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

有关设置的详细信息:

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

谢谢你的帮助


Tags: 方法lambda函数内存代码时间情况图片
1条回答
网友
1楼 · 发布于 2024-09-28 22:11:34

找到了窃听器的触发点。 当上传的lambda函数太大时,在第一次超时后,它永远不会恢复!你知道吗

我的解决方案是小心地去掉不必要的依赖项,使包更小。你知道吗

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

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

感谢评论中的留言。我很感激在这样的情况下,有谁能抽出时间来帮忙。你知道吗

相关问题 更多 >