我已成功将功能部署到AWS。
尝试调用函数(serverless invoke -f facebookAdInsert -l
)时,出现以下错误:
{
"errorMessage": "Cannot find module 'mongodb'",
"errorType": "Error",
"stackTrace": [
"Function.Module._load (module.js:474:25)",
"Module.require (module.js:596:17)",
"require (internal/module.js:11:18)",
"Object.<anonymous> (/var/task/src/facebookAdInsert.js:222:18)",
"__webpack_require__ (/var/task/src/facebookAdInsert.js:20:30)",
"Object.<anonymous> (/var/task/src/facebookAdInsert.js:234:16)",
"__webpack_require__ (/var/task/src/facebookAdInsert.js:20:30)",
"Object.<anonymous> (/var/task/src/facebookAdInsert.js:303:16)",
"__webpack_require__ (/var/task/src/facebookAdInsert.js:20:30)"
]
}
这是我的依赖项:
"dependencies": {
"@babel/core": "^7.3.4",
"@babel/preset-env": "^7.3.4",
"aws-sdk": "^2.268.1",
"babel-loader": "^8.0.5",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-env": "^1.7.0",
"babel-preset-es2015": "^6.24.1",
"dotenv": "^6.0.0",
"moment": "^2.24.0",
"mongodb": "^3.1.10",
"mongoose": "^5.4.17",
"parse-mongo-url": "^1.1.1",
"request": "^2.88.0",
"serverless-offline": "^3.33.0",
"serverless-webpack": "^5.2.0",
"webpack": "^4.29.6",
"webpack-node-externals": "^1.7.2"
}
有关此问题可能有什么想法?根据我的研究,可能的解决方案在部署所有{devDependencies“并将其移至” dependencies“之前正在运行npm install
,但这些解决方案均无效。
答案 0 :(得分:0)
您缺少AWS Lambda的mongodb层
打开终端并输入
nodejs
+---node_modules
+---------- (mongodb and other folders)
有了它,它应该可以正常工作。
致谢