amazon-web-services - 如何在AWS Lambda上安装fontconfig?

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

这是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创建一个docker容器(我认为它类似于AWS lambda容器),则我的PDF上缺少文本。

我通过运行amazonlinux:2.0.20190508解决了yum install fontconfig中的此问题。但是,我不知道如何在实际的lambda中执行相当于yum install fontconfig的操作。如果您查看上面的链接,将会看到那里的答案试图提供该信息,但是由于某种原因,它仍然无法正常工作。我相信原因是,如何正确地从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
    
  • 通过路径/lib64
  • 在docker内部找到了库
    libbz2.so.1 libexpat.so.1 libfontconfig.so.1 libfreetype.so.6 libpng15.so.15
  • 将其复制到/mnt/lib。从lib和zip文件夹lib中获取D:\dockerFiles
  • 创建aws lambda图层并添加到lambda。
  • 关于amazon-web-services - 如何在AWS Lambda上安装fontconfig?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56875174/

    相关文章:

    node.js - AWS lambda 层调用说 opt/ffmpeg 不是目录

    python-3.x - 警告 - 部署后未设置 cfnRole 且创建了不必要的文件

    android - gradle错误-com.google.common.collect.ImmutableSet.toImmutableSet()Ljava/util/stream/Collector

    macos - Boot2docker 虚拟机图形

    azure - 对于在 Azure 上运行 Nginx 的 Docker 镜像,正确的 SSL 配置是什么

    amazon-web-services - AWS CDK 应用程序如何在 "reference"中创建 aws lambda 函数(无需在堆栈中创建新函数)?

    amazon-web-services - AWS Cloudformation Lambda + API 网关 V2 : Unable to deploy API because no routes exist in this API

    angular - 我可以预渲染 Angular 并从 S3 回退到 SSR 吗?

    mongodb - 亚马逊AWS提示

    docker - 无法在 alpine docker 容器中启动应用程序