微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将我的 nodejs/expressjs 应用程序部署到 AWS lambda 后,我收到 bcrypt 错误

如何解决将我的 nodejs/expressjs 应用程序部署到 AWS lambda 后,我收到 bcrypt 错误

我正在尝试让我的 express.js 应用程序在 AWS Lambda 上运行。部署(使用 serverless framework 成功完成,但是当我测试我的请求时应用程序返回 500 internal error。我的日志显示了这个错误

/var/task/node_modules/bcrypt/lib/binding/napi-v3/bcrypt_lib.node: invalid ELF header

我已尝试将 bcrypt 替换为 bcryptjs,但问题仍然存在。

此外,在我的 serverless.yml 中,我添加了以下行以强制 lambda 自行安装 bcrypt,但显然它没有成功:

package:
  exclude:
    - node_modules/**

有什么建议吗?

解决方法

首先,请包含节点模块。除了 aws-sdk 之外,AWS 不会在 lambda 节点环境中安装任何东西。

其次,您看到此错误是因为您可能是在 mac OS 机器上开发的,因此您机器上的 bycrypt 二进制文件最终会上传到 lambda。

请仔细检查当您尝试 bcryptjs 时,您是否从项目依赖项中完全删除了 bcrypt

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。