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

she*_*u85 5 amazon-web-services python-3.x ibm-watson aws-lambda

我正在尝试使用 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-部署-pkg-python

确切的错误:

Unable to import module 'test_translation': libffi-d78936b1.so.6.0.4: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

请注意,如本解决方案中所述,我已经使用zip -r9 $DIR/lambda_function.zip创建了我的包代替 *。但它仍然不适合我。

任何方向都是高度可观的。

小智 10

libffi-d78936b1.so.6.0.4是在一个名为隐藏的文件夹.libs_cffi_backend

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

zip -r ../lambda_function.zip * .[^.]*
Run Code Online (Sandbox Code Playgroud)

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


Mar*_*ins 1

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

1 - 调试您的 Lambda

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

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

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

我强烈建议您尝试一下 SAM,因为它不仅会使这种调试方式变得更容易,而且还能使您以后需要执行的任何进一步测试变得更容易。Lambda 表达式很难调试。