我最近开始使用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,它在根目录中)。
或者,看起来这可能是日志的问题。我再次检查了我的权限,我有能力用所有资源创建日志。有什么其他的想法吗?
requests
库在lambda中默认不存在。看起来您正试图将其导入到函数/库的某个位置。要导入它,需要以下行:或者,您需要压缩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。
相关问题 更多 >
编程相关推荐