amazon-web-services - 如何在 AWS lambda 上安装 fontconfig?
问题描述
这是如何在 AWS lambda 上安装 phantomjs?我已经想出了如何让 phantomjs 在 aws lambda 上运行,但是当我使用它生成 pdf(使用 html-pdf nodejs 库)时,内容缺少文本。如果我创建一个正在使用的 docker 容器FROM node:10.16.0-jessie
,则 pdf 渲染得很好。如果我使用FROM amazonlinux:2.0.20190508
(我认为类似于 AWS lambda 容器)创建 docker 容器,则我的 PDF 中缺少文本。
我已经amazonlinux:2.0.20190508
通过运行解决了这个问题yum install fontconfig
。但是,我不知道如何yum install fontconfig
在真正的 lambda 中做相当于 a 的操作。如果您查看上面的链接,您会看到那里的答案试图提供该信息,但无论出于何种原因,它仍然无法正常工作。我相信原因是仍然缺少如何从amazonlinux:2.0.20190508
容器中正确提取 fontconfig 安装的步骤。
总之,这是我的问题:在我运行之后yum install fontconfig
,我amazonlinux:2.0.20190508
如何从容器中提取它并打包它以便 AWS Lambda 可以使用它?
顺便说一句,我敢肯定还有其他答案似乎在回答这个问题,但是 AWS lambda 内置依赖项变化如此频繁,这些答案都不再有效。
解决方案
就我而言,我这样做了:
- 创建一个包含内容的 Docker 文件:
FROM amazonlinux:2.0.20190508
RUN yum -y install fontconfig freetype
并将其构建为example:latest
- 运行 docker 并挂载文件夹:
docker run -v D:\dockerFiles:/mnt --rm -it example:latest
- 通过路径在 docker 中找到库
/lib64
libbz2.so.1 libexpat.so.1 libfontconfig.so.1 libfreetype.so.6 libpng15.so.15
- 将其复制到
/mnt/lib
. 取自lib
并D:\dockerFiles
压缩文件夹 lib。 - 创建 aws lambda 层并添加到 lambda。
推荐阅读
- reactjs - 你如何在 React 中订阅 Recurly.js 结帐定价事件?
- scala - spark scala:从一列中提取xml
- vba - 如何在 PowerPoint 中使用 VBA 自动裁剪图像?
- excel - excel录制宏的替换VBA(if(sum(countif))
- php - 如何设置 Laravel Nova 操作响应消息的持续时间
- reactjs - 如何在 VS 代码上隐藏这些标签?
- project-reactor - Spring Reactor Mono 或 Flux,如何获得第一个信号但仍让其余信号通过?
- java - 如何在 scala/java 项目中使用 aar maven 依赖项
- python - 使用 NumPy 将 3D 函数映射到网格网格的有效方法
- python - 使用 multiprocessing.pool.map 将 kwargs 传递给 pandas Dataframe 的函数