我最近开始使用AWS Lambda对我编写的一些
python代码使用触发器.我目前有2个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,它在根目录中).
或者,似乎它可能是日志的问题.我仔细检查了我的许可,我有能力用所有资源创建日志.任何其他想法可能是什么问题?
最佳答案 请求库在lambda中默认不来.看起来你正试图在你的函数/库中导入它.要导入它,您需要以下行:
from botocore.vendored import requests
或者,您可能需要在zip文件的根目录中压缩请求库.
编辑:您的某个库可能需要依赖它.要解决此问题,请在您的应用程序zip中安装请求.为此,请在应用程序的根目录中运行以下命令:pip install requests -t ./.
更好的方法是创建一个名为requirements.txt的文件,并在其中添加所有依赖项.使用virtualenv安装requirements.txt中定义的所有软件包:pip install -r requirements.txt -t ./