npm 安装与 AWS Lambda
npm install with AWS Lambda
我正在 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 安装不同的二进制文件版本。我该如何解决?
因为 AWS Lambda 不会为您执行 npm install
,任何需要二进制构建步骤的 npm 模块都可能 运行 出现问题,具体取决于模块的功能、构建方式等。我我不熟悉 synchronize.js,但它可能需要在 Amazon Linux 上构建才能在 AWS Lambda 中取得成功。
所以你必须:
- 在机器 运行ning Amazon Linux 上执行
npm install synchronize
,然后从那里部署。
- 用异步代码(回调、承诺或异步库)替换 synchronize.js
总的来说,如果可能的话,我会推荐#2。你实际上并没有问一个具体的问题,所以我不确定这对你有用,但希望这能给你一些指导。
我正在 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 安装不同的二进制文件版本。我该如何解决?
因为 AWS Lambda 不会为您执行 npm install
,任何需要二进制构建步骤的 npm 模块都可能 运行 出现问题,具体取决于模块的功能、构建方式等。我我不熟悉 synchronize.js,但它可能需要在 Amazon Linux 上构建才能在 AWS Lambda 中取得成功。
所以你必须:
- 在机器 运行ning Amazon Linux 上执行
npm install synchronize
,然后从那里部署。 - 用异步代码(回调、承诺或异步库)替换 synchronize.js
总的来说,如果可能的话,我会推荐#2。你实际上并没有问一个具体的问题,所以我不确定这对你有用,但希望这能给你一些指导。