Ste*_*jic 5 amazon-ec2 amazon-web-services aws-lambda amazon-ami
我想部署和测试我的 Lambda 函数,但是,每次我尝试这样做时,我都会收到以下错误消息:
2019-11-11 13:25:33 Mounting /tmp/tmphebm3s_4 as /var/task:ro,delegated inside runtime container
/var/task/bin/inference: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by /opt/lib/libopencv_dnn.so.4.1)
/var/task/bin/inference: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by /opt/lib/libopencv_video.so.4.1)
/var/task/bin/inference: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by /opt/lib/libopencv_objdetect.so.4.1)
/var/task/bin/inference: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by /opt/lib/libopencv_features2d.so.4.1)
/var/task/bin/inference: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by /opt/lib/libopencv_imgproc.so.4.1)
/var/task/bin/inference: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by /opt/lib/libopencv_core.so.4.1)
/var/task/bin/inference: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by /opt/lib/libinference_engine.so)
/var/task/bin/inference: /lib64/libdbus-1.so.3: no version information available (required by /opt/lib/libatk-bridge-2.0.so.0)
^C/var/task/bin/inference: /lib64/libdbus-1.so.3: no version information available (required by /opt/lib/libatspi.so.0)
Makefile:85: recipe for target 'run-inference' failed
Run Code Online (Sandbox Code Playgroud)
请注意,这inference是我的 Lambda 函数二进制文件的名称。
我发现了这个链接:https : //aws.amazon.com/premiumsupport/knowledge-center/lambda-linux-binary-package/,它让我可以使用 Amazon Linux box 来创建适合 Lambda 函数执行环境的部署包。
我的计划是将代码复制到EC2实例并使用安装在其上的GLIBC版本构建它。我认为这将解决上面提到的问题。
问题是,一旦我通过 SSH 连接到EC2实例,如何将我的代码复制到它然后构建它?我不是 linux 专家,所以这对我来说有点困惑。
提前致谢!
我刚刚回答了一个类似的问题,解决了您遇到的问题,这与我今天早些时候遇到的问题相同。请看:
除了查看那里之外,请注意,您还必须将一个层打包到 AWS Lambda 函数中,其中需要在 lib 文件夹中拥有正确的 LIB 文件(例如“libm.so.6”)你的层。之后,您将需要设置环境变量,如上面链接中所述,以便在运行时使用层的正确 lib 文件,从而使您的代码成功运行。
为了获得正确的 LIB 文件,我建议更多地进行谷歌搜索,并尝试在 conda 中运行代码。我的项目是在 conda 环境中开发的,当我转换为 virtualenv 以便可以打包到 Layer 中然后上传到 AWS Lambda 时,我注意到我也遇到了该错误。然后,我从 conda 环境的 lib 文件夹(现在不记得了)或 conda 安装目录的 lib 文件夹中获取了正确的 lib 文件,并将其放置在图层包的 lib 文件夹中。之后,我仍然必须设置环境变量,以便那些特定的 lib 文件能够加载并链接到 python 运行时。
| 归档时间: |
|
| 查看次数: |
3906 次 |
| 最近记录: |