我正在用 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 中取得成功。
所以你必须:
- 在运行 Amazon Linux 的机器上执行您的
npm install synchronize
,并从那里进行部署。 - 用异步代码(回调、 promise 或异步库)替换 synchronize.js
一般来说,如果可能的话,我会推荐#2。你实际上并没有问一个具体的问题,所以我不确定这对你有用,但希望这能给你一些指导。
关于javascript - npm 安装与 AWS Lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36079438/