我在Javascript中编写AWS Lambda函数 . 我需要使用synchronize.js库,所以我运行 npm install synchronize
. 一切都在本地工作正常,但是当我将* .zip上传到AWS并运行时,它会消除以下错误:
"errorMessage": "`/var/task/node_modules/fibers/bin/linux-x64-v8-3.14/fibers.node` is missing. Try reinstalling `node-fibers`?"
我认为它希望npm安装不同的二进制版本 . 我该如何解决?
1 回答
由于AWS Lambda不会为您执行
npm install
,因此任何需要二进制构建步骤的npm模块都会遇到问题,具体取决于不熟悉synchronize.js的模块's functionality, how it builds, etc. I',但可能需要在Amazon Linux上构建才能在AWS内部成功LAMBDA .所以你必须:
在运行Amazon Linux的计算机上执行
npm install synchronize
,并从那里进行部署 .将synchronize.js替换为异步代码(回调,承诺或异步库)
一般来说,如果可能,我会建议#2 . 你实际上并没有问一个具体的问题,所以我不肯定会对你有用,但希望这会给你一些方向 .