首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libffi-d78936b1.so.6.0.4:无法打开AWS Lambda函数上的共享对象文件错误

libffi-d78936b1.so.6.0.4:无法打开AWS Lambda函数上的共享对象文件错误
EN

Stack Overflow用户
提问于 2018-07-07 00:52:22
回答 3查看 5.2K关注 0票数 6

我正在尝试使用watson_developer_cloud sdk部署python包。密码学是这个包所具有的许多依赖关系之一。我已经在Linux机器上构建了这个包。我的包也包括.libffi-d78936b1.so.6.0.4隐藏文件。但我的lambda函数仍然无法访问它。我仍然得到'libffi-d78936b1.so.6.0.4:无法打开共享对象文件‘错误。我在Vagrant服务器上构建了我的软件包,使用了这里的说明:https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example-deployment-pkg.html#with-s3-example-deployment-pkg-python

准确错误:

代码语言:javascript
复制
Unable to import module 'test_translation': libffi-d78936b1.so.6.0.4: cannot open shared object file: No such file or directory

注意,正如在这个解决方案中所解释的,我已经使用zip -r9 $DIR/lambda_-r9.zip .而不是*创建了我的包。但对我来说还是没用的。

任何方向都是非常值得注意的。

EN

回答 3

Stack Overflow用户

发布于 2019-03-27 14:05:16

libffi-d78936b1.so.6.0.4位于名为.libs_cffi_backend的隐藏文件夹中。

因此,要在lambda zip中添加这个隐藏文件夹,您应该执行以下操作:

代码语言:javascript
复制
zip -r ../lambda_function.zip * .[^.]*

这将在上面的目录中创建一个名为lambda_function.zip的zip文件,其中包含当前目录中的所有文件(第一个*)和以.*而不是..* ([^.])开头的所有文件。

票数 10
EN

Stack Overflow用户

发布于 2018-07-07 05:46:23

在这种情况下,我会花一些时间建立一个本地SAM环境,这样您就可以:

1-调试你的Lambda

2-检查正在打包的内容和文件的层次结构。

https://docs.aws.amazon.com/lambda/latest/dg/test-sam-cli.html

或者,您可以删除此导入,并检测您的lambda函数以打印它“看到”的一些文件和目录。

不过,我强烈建议您尝试SAM,因为它不仅会使调试更容易,而且还会使您需要执行的任何进一步测试都更简单。Lambda很难调试。

票数 1
EN

Stack Overflow用户

发布于 2020-03-03 15:18:46

有点晚了,我会对弗兰克的回答发表评论,但没有足够的声誉。

我在部署包中包含了隐藏目录.libs_cffi_backend,但由于某种原因,Lambda无法找到位于其中的libffi-d78936b1.so.6.0.4文件。

在将该文件复制到与我的lambda处理程序相同的“根”级别目录后,它能够加载依赖项并执行。

此外,确保部署包中的所有文件都是可读的chmod -R 644 .

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51219096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档