在Sharp库中运行AWS Lambda函数时出现问题

时间:2019-01-22 00:56:41

标签: node.js aws-lambda aws-amplify sharp

我按照AWS讲习班(https://amplify-workshop.go-aws.com/70_generating_thumbnails/10_creating_a_photo_processor_lambda.html)通过aws-amplify CLI创建了一个lambda函数。似乎某个地方的版本冲突的Node.js存在问题。

我认为问题在于夏普库,因此我尝试将版本更改为最新版本,以查看是否可以解决问题,但是并不能解决问题。

CloudWatch错误日志:

module initialization error: Error
was compiled against a different Node.js version using
NODE_MODULE_VERSION 67. This version of Node.js requires
NODE_MODULE_VERSION 57. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
at Object.Module._extensions..node (module.js:681:18)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/var/task/node_modules/sharp/lib/constructor.js:10:15)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)

我相信有一个简单的解决方法,但是我不确定问题的根源在哪里。谢谢。

1 个答案:

答案 0 :(得分:1)

好像您已经使用node_modules的lambda不兼容版本构建了Node.js。仅Lambda supports Node.js 6.10和8.10。

尝试将本地节点版本更改为8.10,删除node_modulesnpm install,包含node_modules的捆绑文件夹并上传到lambda。这应该起作用。