【发布时间】:2021-05-27 22:34:46
【问题描述】:
我正在尝试创建一个 Lambda 函数,该函数在 Java 中运行 Selenium 测试,作为 AWS 中 CI/CD 管道的一部分。但是,该函数安装Chromedriver后,由于缺少Chromedriver需要的.so文件而失败:
/tmp/chrome_driver7811961600494562711/chromedriver: error while loading shared libraries: libglib-2.0.so.0: cannot open shared object file: No such file or directory
我了解到您可以通过 Lambda 中的软件层包含本机库,并且我知道您必须在 Amazon Linux 环境中编译它,如 here 所述。
但是,在压缩文件并创建我的图层后,它仍然没有拾取库,并给出同样的错误。我还尝试将它放在 zip 文件中的各个目录中,例如 /opt、/opt/lib,并在函数中设置 LD_LIBRARY_PATH 变量,但仍然没有运气。任何帮助表示赞赏。
【问题讨论】:
-
我认为您应该将共享库放在
/lib64/中。另外不确定如何部署您的lambda,您可以简单地创建一个可以使用java lambda docker image 在本地测试的docker 映像。必须更快且可在本地进行全面测试。 -
/lib64也不起作用。我正在通过 AWS 控制台部署它。我只是不明白为什么这个问题有这么多不同的答案,而且似乎没有一个有效......
标签: java amazon-web-services aws-lambda selenium-chromedriver shared-libraries