首页 > 解决方案 > 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在回购中以使其工作吗?谢谢!

标签: node.jsaws-lambdagraphicsmagick

解决方案


gm是一个用于使用的 NodeJS 包ImageMagick。你仍然需要ImageMagick它自己。

您需要ImageMagick为 Lambda 环境安装和编译。然后,您可以将其作为 Lambda 层上传,您的 Lambda 函数可以位于该层之上。

如果您使用serverless,您可以查看这个答案,它为您提供了如何构建ImageMagick为 Lambda 层的步骤。


推荐阅读