我能够将我的PyNaCl库作为一个层添加到Lambda(Python 3.8)中,但是由于某种原因,当我尝试测试代码时,我得到了错误
“errorMessage”:“无法导入模块‘lambda_函数’:没有名为‘cffi_backend’的模块, “errorType”:“Runtime.ImportModuleError”
现在,当我在本地使用PyCharm并将PyNaCl库安装到venv中时,我没有执行错误。Lambda是否要求文件层次结构不同?我将库压缩为/lib/python3.8/site-packages,其中唯一包含的库是PyNaCl
您的问题可能有两个原因:
库文件夹结构不准确。尝试python/lib/python3.8/site-packages,然后再次压缩并上传
如果(1)不起作用,则可能是您使用的库是在与Amazon Lambda不兼容的平台上编译的。AmazonLambda基于AmazonLinux。一种简单的方法是使用AWS提供的docker文件创建docker映像(请注意您的python版本):
https://docs.aws.amazon.com/lambda/latest/dg/python-image.html
然后在容器中编译PyNaCl库,取出已编译的库文件并再次进行上载
Lambda需要layer.zip存档目录结构以
python
dir开头。通常有效的方法是:这将创建正确的结构。压缩和上传作为一个层
或者,您可以使用依赖项构建docker映像,并在lambda:https://docs.aws.amazon.com/lambda/latest/dg/images-create.html中使用它
相关问题 更多 >
编程相关推荐