从 Windows 部署 SLS 代码后获取"module initialization error"



我正在从我的办公室部署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

最新更新