在AWS Lambda中包含自定义字体

wil*_*ill 0 lambda fonts amazon-web-services

是否有人知道EC Lambda EC2中的ebextensions [2]之类的东西?

目标是在AWS Lambda执行环境中安装自定义字体。

有很多方法可以为库和工具提供字体,但是最简单的方法是通过OS包含它们。

还在AWS论坛上作为回应被问到:https : //forums.aws.amazon.com/thread.jspa? messageID = 807139

[2] 如何在AWS EC2实例上安装特定字体?

Jer*_*een 10

这就是我使用pandoc / xelatex在AWS Lambda上为自定义字体工作的方法。

fonts在项目中创建了一个目录,并将所有字体都放置在该目录中。同样在该目录中,我创建了一个如下所示的fonts.conf文件:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <dir>/var/task/fonts/</dir>
  <cachedir>/tmp/fonts-cache/</cachedir>
  <config></config>
</fontconfig>
Run Code Online (Sandbox Code Playgroud)

然后,在我的(基于node.js的)处理函数中,在进行炮击以调用pandoc之前,我设置了一个ENV变量来告诉fontconfig在哪里可以找到字体。

process.env.FONTCONFIG_PATH='/var/task/fonts'
Run Code Online (Sandbox Code Playgroud)

完成此操作后,我可以Bitter在模板中通过名称(如)来引用字体(例如Bitter),然后pandoc / xelatex / fontconfig / 根据文本的样式确定使用哪种版本的字体(例如Bitter-Bold.otfvs Bitter-Italic.otf)应该有。

我根据此项目中的技巧弄清楚了这一点,以使RSVG可以在Lambda上使用自定义字体:https : //github.com/claudiajs/rsvg-convert-aws-lambda-binary/blob/master/README.md#使用自定义字体

  • 同样的策略也适用于 Lambda 层,但使用“/opt”而不是“/var/task/” (2认同)
  • 这对我有用:http://techdebtcollect.blogspot.com/2018/10/how-to-get-custom-font-into-aws-lambda.html,与 Jeremy 的 fonts.conf 的区别在于 &lt;dir&gt; &lt;/dir&gt; 指向相对 URL“./fonts”(我没有尝试使用完全限定的 url,但我猜它也能工作) (2认同)

Mic*_*bot 1

AWS 官方在论坛帖子中的回复仍然正确。

目前,无法自定义 Lambda 环境。如果您需要其他软件包,您可以在 Amazon Linux 上构建并将它们放入您上传的 zip 文件中。

这就是您可以在 Lambda 环境中“安装”任何内容的程度。

最简单的方法是通过操作系统包含它们。

可以说是这样,但这根本不是 Lambda 的工作原理。