node.js - AWS Lambda GraphicsMagick 错误:找不到 gm/convert 二进制文件”
问题描述
我在一个带有 Node 的 Lambda 函数中起诉 GraphicsMagick,我收到了这个错误:
Could not execute GraphicsMagick/ImageMagick: gm "convert" "/tmp/yH3Js6ALXVGGAokvIsij.png" "/tmp/a086ffd7-a143-4f83-8f6a-fcdd29b12630.png" this most likely means the gm/convert binaries can't be found
at ChildProcess.<anonymous> (/var/task/node_modules/gm/lib/command.js:232:12)
at emitOne (events.js:96:13)
at ChildProcess.emit (events.js:188:7)
at Process.ChildProcess._handle.onexit (internal/child_process.js:213:12)
at onErrorNT (internal/child_process.js:367:16)
at _combinedTickCallback (internal/process/next_tick.js:80:11)
at process._tickDomainCallback (internal/process/next_tick.js:128:9)
所以它说the gm/convert binaries can't be found
这意味着尽管该行"gm": "^1.23.1"
位于 package.json 中,但尚未安装该应用程序。你现在能告诉我我可以将它包含gm/convert binaires
在回购中以使其工作吗?谢谢!
解决方案
gm
是一个用于使用的 NodeJS 包ImageMagick
。你仍然需要ImageMagick
它自己。
您需要ImageMagick
为 Lambda 环境安装和编译。然后,您可以将其作为 Lambda 层上传,您的 Lambda 函数可以位于该层之上。
如果您使用serverless
,您可以查看这个答案,它为您提供了如何构建ImageMagick
为 Lambda 层的步骤。
推荐阅读
- node.js - 节点 JS 查询 request.query 为空
- redis - Redis 错过了大部分请求
- php - PHP:数组第一个值设置为其余值的键
- python - AttributeError:模块“tensorflow.python.framework.ops”没有属性“RegisterShape”
- vba - Access VBA 中的任何函数都可以像 if(me.Text01.value is null, 'null',me.Text01.value)
- c++ - 通过cpp程序查找文件是否存在于注册表编辑器中
- ios - IOS - 侧面加载限制问题:我的物理设备上只能有 2 个应用程序而不是 3 个
- axapta - 勾选后不可编辑的框
- python - 试图了解如何让 import re 在 pycharm 中工作
- leaflet - 传单:过滤器标记