我不断遇到导入要在AWS上使用的模块的问题。
特别是Coinbase库。
我遵循了AWS Lambda文档,并创建了一个名为packages的文件夹,将所有库安装到该文件夹中,然后使用我的函数将其压缩。
如果我注释掉所有的Coinbase代码和import语句,则可以使该函数正常工作,这样可以告诉我压缩和上传都很好。
特定错误是
{
"errorMessage": "Unable to import module 'lambda_function': No module named 'coinbase'",
"errorType": "Runtime.ImportModuleError"
}
我可以将coinbase库位于包文件夹中的日期视为飞机,所以我不确定为什么AWS无法访问它。
我尝试过chmod 444,仍然没有成功。
有人解决过不能在lambda上运行的软件包有任何经验吗?
答案 0 :(得分:1)
您需要启动EC2来创建图层。在Runtimes中查找实例的AMI。例如,Python 3.6使用AWS Linux1。
在那种情况下,您需要安装Python 3.6并执行以下命令:
sudo su
mkdir -p temp/python
cd temp/python
pip-3.6 install coinbase -t .
cd ..
zip -r9 ../coinbase .zip .
例如,使用SFTP提取此zip并上传到AWS Lambda Layers。您的图层将完美运行。
将图层附加到要使用该软件包的功能上