在AWS Lamba上安装新字体

时间:2017-04-25 23:54:30

标签: aws-lambda

我正在AWS Lambda上安装Imagemagick,似乎没有预装Imagemagick通常使用的字体,我该如何添加其他字体?

2 个答案:

答案 0 :(得分:1)

你不能。

您甚至可以将Imagemagick与lambda一起使用的原因是因为AWS Lambda团队已在其容器上预安装了此库。

对于在NodeJS上运行的Lambda来说也是如此 - 它有用于操作运行在操作系统上的Imagemagick但不能自行运行它的库。

您应该检查使用C#/ Java运行时 - 可能有Imagemagick库,您可以将其添加到Lambda中(不确定)。

答案 1 :(得分:0)

这就是我需要使用pandoc / xelatex在AWS Lambda上处理自定义字体的方法。我认为您可以做一些非常相似的事情来使Imagemagick正常工作。

我在项目中创建了一个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>

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

process.env.FONTCONFIG_PATH='/var/task/fonts'

完成此操作后,我可以在模板中按名称(仅Bitter引用一种字体,例如Bitter,然后使用pandoc / xelatex / fontconfig /无论知道使用哪种字体(例如Bitter-Bold.otfBitter-Italic.otf之类的内容)是基于任何一点文字都应该具有的样式。

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