我正在从我的办公室部署lambda函数,那里有ubuntu操作系统。 当我部署我的无服务器代码时,它工作正常,我可以毫无问题地访问 lambda API。 但是当我在有 Windows 操作系统的家用机器上部署时,代码相同,它在访问 lambda API 时显示错误"模块初始化错误"("注意 - 部署它时没有问题, 当我从Windows机器部署lambda API后访问它时出现问题")。
我调试了问题,发现问题与"bcrypt"包有关。 在日志中,我看到,当代码执行到达我导入"bcrypt"模块的文件时,它会抛出错误。我不知道为什么它仅在 bcrypt 的 2 个不同操作系统上显示两种不同的行为。
"dependencies": {
"@serverless/fdk": "^0.7.1",
"bcrypt": "^3.0.6",
"jsonwebtoken": "^8.5.1",
"mysql": "^2.17.1",
"serverless-http": "^2.0.2"
myOwnFunction 的日志
module initialization error
Error
2019-06-08 09:25:06.043 (+05:30) 33f9015c-c9f0-43a5-8c4a-1fc617ad955d inside OwnerModel
在我的代码中,当代码执行到达以下行时
import bcrypt from 'bcrypt';
它显示模块初始化错误
我希望执行lambda api,即使它是在Windows机器的帮助下部署的。
您需要使用特定的 NodeJS 版本在 Amazon Linux 上编译bcrypt
模块,然后压缩并部署它。
或者,我建议使用bcryptjs