AWS Lambda导入模块故障

时间:2019-12-05 07:03:40

标签: python python-3.x amazon-web-services aws-lambda

我不断遇到导入要在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上运行的软件包有任何经验吗?

1 个答案:

答案 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。您的图层将完美运行。

将图层附加到要使用该软件包的功能上