nodejs Lambda 函数中的 AWS-SDK 找不到端点缓存模块
AWS-SDK in nodejs Lambda function cannot find endpoint-cache module
我一直在重构我们的一些 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 节点模块的供应商文件夹中。
我检查了部署工件以确保该文件夹存在,并且我尝试降级到之前使用的旧版本的 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 版本
我昨天遇到了这个问题,我通过删除 package.json
中的 aws-sdk
并删除 + 重新安装我的 node_modules
文件夹解决了这个问题。希望这能解决您的问题。
我认为 aws-sdk
已默认包含。
在 Lambda 函数中指定所需 SDK 的推荐方法是使用所需版本创建一个 lambda 层。看这里:https://aws.amazon.com/blogs/compute/working-with-aws-lambda-and-lambda-layers-in-aws-sam/
其实我也遇到了同样的问题。在我的例子中,原因在于 Compress-Archive
函数,运行 on Windows。如果我用 Compress-Archive
打包 lambda,则 Lambda 调用会失败并出现上述错误。但是,如果我解压缩 .zip
并使用常规 Windows "send to compressed directory" 打包 - 一切正常。我发现了一些 similar issue in PowerShell github space,这让我觉得这是一个常见问题。
该问题已在 PowerShell Core 的最新版本之一中得到解决(经典 PowerShell 不确定)。我不确定修复此问题的确切版本,但它在 v.6.1 中存在,在 v.6.2.2 中消失了。
我一直在重构我们的一些 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 节点模块的供应商文件夹中。 我检查了部署工件以确保该文件夹存在,并且我尝试降级到之前使用的旧版本的 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 版本
我昨天遇到了这个问题,我通过删除 package.json
中的 aws-sdk
并删除 + 重新安装我的 node_modules
文件夹解决了这个问题。希望这能解决您的问题。
我认为 aws-sdk
已默认包含。
在 Lambda 函数中指定所需 SDK 的推荐方法是使用所需版本创建一个 lambda 层。看这里:https://aws.amazon.com/blogs/compute/working-with-aws-lambda-and-lambda-layers-in-aws-sam/
其实我也遇到了同样的问题。在我的例子中,原因在于 Compress-Archive
函数,运行 on Windows。如果我用 Compress-Archive
打包 lambda,则 Lambda 调用会失败并出现上述错误。但是,如果我解压缩 .zip
并使用常规 Windows "send to compressed directory" 打包 - 一切正常。我发现了一些 similar issue in PowerShell github space,这让我觉得这是一个常见问题。
该问题已在 PowerShell Core 的最新版本之一中得到解决(经典 PowerShell 不确定)。我不确定修复此问题的确切版本,但它在 v.6.1 中存在,在 v.6.2.2 中消失了。