我正在尝试创建一个新的 lambda 层来使用 psycopg2 导入 zip 文件,因为该库使我的部署包超过 3MB,并且我再也看不到 lambda 函数中的内联代码。
我使用 Python 3.7 为以下 2 种情况创建了 lambda 层:
- psycopg2_lib.zip(包含 psycopg2、psycopg2_binary.libs 和 psycopg2_binary-2.8.5.dist-info 文件夹)
- psycopg2_only.zip 仅包含 psycopg2 文件夹。
我将他们新创建的层添加到我的 lambda 函数中。
但是,在这两种情况下,我的 lambda_function 都会抛出错误,如下所示:
{
"errorMessage": "无法导入模块 'lambda_function': 没有名为 'psycopg2' 的模块",
“errorType”:“运行时.ImportModuleError”
}
该错误似乎是我的 zip 文件出了问题,无法识别它们。但是当它在我的部署包中运行良好时。
任何帮助或理由将不胜感激。谢谢!
不确定OP是否找到了解决方案,但以防其他人登陆这里。我使用以下步骤解决了这个问题:
- 从以下位置下载代码/克隆 git:https://github.com/jkehler/awslambda-psycopg2
- 如果是为 python3.7 构建,则创建以下目录树,否则将“python3.7”替换为版本选择:
mkdir -p python/lib/python3.7/site-packages/psycopg2
- 选择感兴趣的 python 版本,并将步骤 1 中下载的文件夹中的文件复制到步骤 2 中的目录树。如果为 python 3.7 构建一个层:
cp psycopg2-3.7/* python/lib/python3.7/site-packages/psycopg2
- 为图层创建 zip 文件。例如。:
zip -r9 psycopg2-py37.zip python
- 在控制台或 cli 中创建一个图层并上传 zip
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)