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

问题描述 投票:0回答:2

我正在尝试使用watson_developer_cloud sdk部署python Lambda包。密码学是该软件包具有的众多依赖项之一。我在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

确切的错误:

Unable to import module 'test_translation': libffi-d78936b1.so.6.0.4: cannot open shared object file: No such file or directory

在注释中,正如本solution中所解释的,我已经使用zip -r9 $ DIR / lambda_function.zip创建了我的包。代替 *。但它仍然不适合我。

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

python-3.x amazon-web-services aws-lambda ibm-watson
2个回答
1
投票

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

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

  • zip -r ../lambda_function.zip *。[^。] *

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


0
投票

在这种情况下,我会投入一些时间来设置本地SAM环境,以便您可以:

1 - 调试Lambda

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

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

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

我强烈建议您尝试SAM,因为它不仅可以使这种调试方式更容易,而且还可以进行任何进一步的测试。 Lambdas很难调试。

© www.soinside.com 2019 - 2024. All rights reserved.