从Windows部署sls代码后收到“模块初始化错误”

时间:2019-06-08 04:23:58

标签: node.js aws-lambda serverless aws-sdk-nodejs

我正在从装有ubuntu操作系统的办公室部署lambda函数。当我部署无服务器代码时,它可以正常工作,我可以毫无问题地访问lambda api。但是当我在有Windows操作系统的家用计算机上部署时使用相同的代码,在访问lambda api时会显示错误“模块初始化错误”(“注意-部署时没有问题,当我访问时会出现问题从Windows机器上部署后的lambda API”。

我调试了该问题,发现该问题与“ bcrypt”软件包有关。在日志中,我看到当代码执行到达我导入“ bcrypt”模块的文件时,它会引发错误。我不知道为什么它在2个不同的操作系统上仅针对bcrypt显示两种不同的行为。

 "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';

它显示模块初始化错误

即使在Windows计算机的帮助下部署,我也希望执行lambda api。

1 个答案:

答案 0 :(得分:1)

您将需要使用特定的NodeJS版本在Amazon Linux上编译bcrypt模块,然后压缩并部署它。

或者,我建议使用bcryptjs