我最近在重构我们的AWS Lambda函数,但在最新版本中出现了以下错误:
"Payload": "{\"errorMessage\":\"Cannot find module '../vendor/endpoint-cache'\",\"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/node_modules/aws-sdk/lib/core.js:76:18)\",\"Module._compile (module.js:652:30)\",\"Object.Module._extensions..js (module.js:663:10)\",\"Module.load (module.js:565:32)\",\"tryModuleLoad (module.js:505:12)\",\"Function.Module._load (module.js:497:3)\"]}"
这个模块位于aws-sdk节点模块的vendor文件夹中。我检查了部署工件以确保文件夹存在,并尝试降级到之前使用的aws-sdk旧版本。
package.json中的依赖项:
"dependencies": {
"aws-sdk": "^2.59.0",
"moment": "^2.22.2",
"underscore": "^1.8.3"
},
构建服务器运行npm-install,然后...
$path = Get-Location
$thisProject = "$($path)\pathToProject\*"
Compress-Archive -Path $thisProject -DestinationPath thisProject.zip
我卡在这个问题上一段时间了,非常感谢任何帮助。
aws-sdk
引用了在https://github.com/aws/aws-sdk-js/releases/tag/v2.352.0发布的新功能`endpoint-cache`,该变更在此行https://github.com/aws/aws-sdk-js/blob/cbef86432191d1501075d71744385c273c4bbc3a/lib/core.js#L76中找到。AWS Lambda的Node 8.10似乎找不到它。 - Jonn