【发布时间】:2019-06-15 10:11:35
【问题描述】:
我通过 AWS 研讨会 (https://amplify-workshop.go-aws.com/70_generating_thumbnails/10_creating_a_photo_processor_lambda.html) 通过 aws-amplify CLI 创建了一个 lambda 函数。似乎某个地方的 Node.js 版本冲突存在问题。
我认为Sharp库是问题所在,所以我尝试将版本更改为最新版本,看看是否可以解决问题,但并没有解决问题。
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)
我相信有一个简单的解决方法,但我不确定问题的根源在哪里。谢谢。
【问题讨论】:
-
您使用的是什么节点版本? lambda 仅支持
Node.js6.10和8.10。 docs.aws.amazon.com/lambda/latest/dg/programming-model.html -
我的 Lambda 函数使用的是 v8.10,很抱歉我忘了提及。由于 NODE_MODULE_VERSION_67 与 Node.js 版本 11 相关,我想知道它来自哪里?锋利的图书馆?
-
您可能是从本地系统捆绑的,可能安装了
node11。 -
将您的本地节点版本更改为
8.10,删除node_modules、npm install、包含node_modules的捆绑文件夹并上传到lambda。它应该可以工作。
标签: node.js aws-lambda aws-amplify sharp