我通过aws-amplify CLI创建了一个lambda函数,这是在AWS研讨会(https://amplify-workshop.go-aws.com/70_generating_thumbnails/10_creating_a_photo_processor_lambda.html)之后完成的。看起来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)
我相信有一个简单的解决办法,但我不确定问题的根源在哪里。谢谢。
4条答案
按热度按时间moiiocjp1#
安装sharp时使用你的aws lambda节点版本。
w8biq8rn2#
看起来您使用
Node.js
的lambda不兼容版本生成了node_modules
。Lambda仅适用于supports Node.js 6.10和8.10。尝试将您的本地节点版本更改为
8.10
,删除node_modules
,npm install
,bundle文件夹(包括node_modules
)并上传到lambda。xuo3flqw3#
以下几点对我很有效:
出于某种原因,争论没有奏效。
sulc1iza4#
我知道这个问题是老问题了。我也遇到过同样的麻烦,发现问题是当我们在windows机器中构建项目(层)并试图在lambda中运行它时。在Linux和Windows环境中构建的依赖关系是不同的。
尝试在Linux环境中构建和创建zip文件。这应该可以解决您的问题。