Lambda: module initialization error: Error

Lambda: module initialization error: Error

我在部署 Lambda 函数时遇到此错误:

module initialization error: Error
at Error (native)
at Object.Module._extensions..node (module.js:597:18)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at bindings (/var/task/node_modules/bindings/bindings.js:84:48)
at Object. (/var/task/node_modules/sharp/lib/constructor.js:10:34)
at Module._compile (module.js:570:32)

serverless.yml和package.json: https://github.com/A-Atrash/forfilesharingtohandleerror。 它与节点。在我添加新包 ImageMagick 并开始将其用作图像验证之前,它曾经工作过。有什么想法吗?

我相信您正在从非 Linux 环境(例如 Windows 或 MacOS)创建 Lambda 程序包。

ImageMagick 使用本机模块,因此当您执行 npm install 时,它会针对您当前的环境进行编译。如果您使用 Windows 或 MacOS,此编译包将无法运行 Lambda(使用 Linux)。

要使其正常工作,您的 Lambda 程序包必须在 Linux 环境中创建,然后从那里上传。

在我的例子中,source-map-support 包丢弃了实际的错误消息和堆栈跟踪。 一旦我注释掉 source-map-support 包导入行,错误就会开始显示实际的错误消息和堆栈跟踪。