【问题标题】:AWS Lambda NodeJS12.x - error while loading shared libraries: libXrender.so.1AWS Lambda NodeJS12.x - 加载共享库时出错:libXrender.so.1
【发布时间】:2020-03-15 12:54:06
【问题描述】:

我已将 lambda 函数从 nodejs8 更新为 nodejs12。

wkhtmltopdf 在 nodejs 8 上运行良好,但现在我收到此错误:

“wkhtmltopdf:加载共享库时出错:libXrender.so.1:无法打开共享对象文件:没有这样的文件或目录

我曾尝试手动将librairie libXrender 放入文件项目中,但它不起作用。

如果有人有关于如何使 wkhtmltopdf 在 nodejs 12 中的 aws lambda 上工作的解决方案,那就太好了。提前谢谢你。

【问题讨论】:

  • 我也有同样的问题。在此期间您是否找到了解决方案?

标签: node.js amazon-web-services aws-lambda wkhtmltopdf


【解决方案1】:

我也遇到了同样的问题。最终从 Amazon Linux 2 图像中提取了必要的库+字体,如下所示:

1) 运行并进入 Amazon Linux 2 的 docker 容器:

docker run -it --rm amazonlinux:2.0.20191217.0

2) 在 docker 容器内安装必要的工具,并自动准备必要的依赖项(基于 64 位):

mkdir -p /deps
yum install -y yum-utils rpmdevtools
yum install -y libXrender.x86_64 fontconfig.x86_64 freetype.x86_64 libXext.x86_64 libX11.x86_64 expat.x86_64 libxcb.x86_64 libXau.x86_64
yumdownloader libXrender.x86_64 fontconfig.x86_64 freetype.x86_64 libXext.x86_64 libX11.x86_64 expat.x86_64 libxcb.x86_64 libXau.x86_64
rpmdev-extract *rpm
cp /tmp/*/usr/lib64/* /deps
cp -R /tmp/*/etc/fonts /deps/

3) 打开一个新的终端窗口并导航到 PDF lambda 文件夹。使用docker ps 命令,找到容器id 并粘贴以下命令:

docker cp <CONTAINER_ID>:/deps/ . && mv deps/* . && rmdir deps

4) 把&lt;your_lambda_path&gt;/deps/fonts/fonts.conf的内容替换成这个,或者提供自己的config+字体文件:

<fontconfig>
<dir>/var/task/fonts/</dir>
<cachedir>/tmp/fonts-cache/</cachedir>
<config></config>
</fontconfig>

5) 在您的处理程序中,您需要设置以下内容来查找字体:

process.env['FONTCONFIG_PATH'] = process.env['LAMBDA_TASK_ROOT'] + '/fonts'

完成后,只需像往常一样压缩包并进行部署。

希望有帮助

【讨论】:

  • 这些步骤的库太多了,所以我选择了我需要的几个库。我必须从 Amazon Linux 1 的实例下载字体。 /etc/fonts /usr/share/X11/fonts/Type1 /usr/share/fonts 然后就可以了。这篇文章对我帮助很大。 github.com/wkhtmltopdf/wkhtmltopdf/issues/4523
【解决方案2】:

【讨论】:

  • 第一个和第三个链接使用的是Node.js 4.3。第一个链接是我使用的那个,它适用于nodejs8,但就像我说的它不适用于nodejs12。第二个链接只是说要下载二进制 wkhtmltopdf,我试过也不起作用。
  • @vanessa 你找到用 nodejs12 运行 wkhtmltopdf 的任何解决方案了吗,我也面临同样的问题,它适用于 node8
  • @NarendraChouhan 不,我没有找到解决方案,我现在正在处理其他项目。
猜你喜欢
  • 2020-05-23
  • 2012-04-22
  • 2011-05-29
  • 2013-10-27
  • 1970-01-01
相关资源
最近更新 更多