【问题标题】:How do I install fontconfig on AWS lambda?如何在 AWS lambda 上安装 fontconfig?
【发布时间】:2019-07-03 17:17:56
【问题描述】:

这是How do you install phantomjs on AWS lambda? 的延续我已经弄清楚如何让 phantomjs 在 aws lambda 上运行,但是当我使用它来生成 pdf(使用 html-pdf nodejs 库)时,内容缺少文本。如果我创建一个在其上使用 FROM node:10.16.0-jessie 的 docker 容器,则 pdf 呈现良好。如果我使用 FROM amazonlinux:2.0.20190508(我认为它类似于 AWS lambda 容器)创建一个 docker 容器,那么我的 PDF 中的文本会丢失。

我已经通过运行yum install fontconfigamazonlinux:2.0.20190508 中解决了这个问题。但是,我不知道如何在真正的 lambda 中做相当于 yum install fontconfig 的操作。如果您查看上面的链接,您会看到那里的答案尝试提供该信息,但无论出于何种原因,它仍然无法正常工作。我相信原因是仍然缺少关于如何从amazonlinux:2.0.20190508 容器中正确提取 fontconfig 安装的步骤。

总而言之,这是我的问题:在amazonlinux:2.0.20190508 中运行yum install fontconfig 后,如何从容器中提取它并将其打包以便AWS Lambda 可以使用它?

顺便说一句,我敢肯定还有其他答案似乎在回答这个问题,但是 AWS lambda 内置依赖项变化如此频繁,这些答案都不再适用了。

【问题讨论】:

  • 你试过 Lambda 层吗?
  • 也许 Lambda 层可以解决你的问题。
  • 你找到解决办法了吗?
  • @EliyaCohen 不,放弃了。

标签: amazon-web-services docker aws-lambda node-html-pdf


【解决方案1】:

就我而言,我是这样做的:

  1. 创建一个包含内容的 Docker 文件:
    FROM amazonlinux:2.0.20190508
    RUN yum -y install fontconfig freetype

并将其构建为example:latest

  1. 运行 docker 并挂载文件夹:
docker run -v D:\dockerFiles:/mnt --rm -it example:latest
  1. 通过路径 /lib64 在 docker 中找到库

libbz2.so.1 libexpat.so.1 libfontconfig.so.1 libfreetype.so.6 libpng15.so.15

  1. 复制到/mnt/lib。从D:\dockerFiles 中提取lib 并压缩文件夹lib。
  2. 创建 aws lambda 层并添加到 lambda。

【讨论】:

    猜你喜欢
    • 2019-11-09
    • 1970-01-01
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多