node.js - AWS Lambda GraphicsMagick 错误 : gm/convert binaries can't be found"

标签 node.js aws-lambda graphicsmagick

我在使用 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)

所以它说找不到 gm/convert 二进制文件,这意味着该应用程序尚未安装,尽管行 "gm": "^1.23.1" 位于 package.json 中。您现在可以告诉我,我可以将 gm/convert binaires 包含在存储库中以使其正常工作吗?谢谢!

最佳答案

gm 是一个用于使用 ImageMagick 的 NodeJS 包。您仍然需要 ImageMagick 本身。

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

如果您使用serverless,您可以查看this answer它为您提供了如何将 ImageMagick 构建为 Lambda 层的步骤。

关于node.js - AWS Lambda GraphicsMagick 错误 : gm/convert binaries can't be found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53821778/

相关文章:

node.js - gm 流标准输出管道抛出未处理的错误

javascript - 无限期地重复诺克 react

javascript - 如何在模态视图中访问对象

node.js - 如何在 Heroku 上使用 PM2 CLI

amazon-web-services - 从 lambda 创建了 cloudwatch 事件,但 Cloudwatch 事件中没有任何内容

node.js - Heroku 上的 ImageMagick 和 FFTW

node.js - Docker - 从基础镜像中覆盖或删除 ENTRYPOINT

amazon-web-services - 是否可以从 AWS Lambda 函数触发 Sagemaker 笔记本?

c# - 使用 dotnet core 2.1 的 AWS Lambda 函数中的依赖注入(inject)

javascript - 通过formidable和gm使用Express.js上传的流文件,消除双写