aws lambda无法导入模块“lambda_function”:没有名为“requests”的模块

2024-06-28 19:07:00 发布

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

我最近开始使用AWS Lambda对我编写的一些python代码使用触发器。我目前有两个lambda函数,它们都是用ZIP文件创建的。我创建的第二个应该用来测试触发器事件。

这是为了测试目的,所以我使用了最好的代码:

def lambda_handler(event, context):
    print ("Hello World")

但是,我得到了这个错误:

Response:
{
  "errorMessage": "Unable to import module 'lambda_function'"
}

Request ID:
"65024f16-172c-11e8-ab26-27ff3322e597"

Function Logs:
START RequestId: 65024f16-172c-11e8-ab26-27ff3322e597 Version: $LATEST
Unable to import module 'lambda_function': No module named 'requests'

END RequestId: 65024f16-172c-11e8-ab26-27ff3322e597
REPORT RequestId: 65024f16-172c-11e8-ab26-27ff3322e597  Duration: 15.93 ms  
Billed Duration: 100 ms     Memory Size: 128 MB Max Memory Used: 22 MB  

在我搜索过的所有地方,都可以通过确保函数名正确或确保.zip文件可读来解决这个问题。我已经满足了这两个条件(文件名是lambda_function.py,它在根目录中)。

或者,看起来这可能是日志的问题。我再次检查了我的权限,我有能力用所有资源创建日志。有什么其他的想法吗?


Tags: tolambda函数代码importfunctionmbms
1条回答
网友
1楼 · 发布于 2024-06-28 19:07:00

requests库在lambda中默认不存在。看起来您正试图将其导入到函数/库的某个位置。要导入它,需要以下行:

from botocore.vendored import requests

或者,您需要压缩zip文件根目录中的requests库。

编辑:您的某个库中可能有依赖项需要此功能。要解决此问题,请在应用程序zip中安装requests。为此,请在应用程序的根目录中运行以下命令:pip install requests -t ./

更好的方法是创建一个名为requirements.txt的文件,并在其中添加所有依赖项。使用virtualenv安装requirements.txt中定义的所有包,使用:pip install -r requirements.txt -t ./


更新:从19年10月21日开始,botocore中的请求库的自动生成版本将被删除。有关详细信息,请参阅this blog post

相关问题 更多 >