VSCode launch.json 无法启动本地 API 网关:等待命令时超时:"sam local start-api"



几天来,我一直在思考这个问题,结果一无所获。我有一个API,我可以通过命令行在本地运行-

sam本地启动api

sam本地调用HelloWorldFunction

我过去也可以通过launch.json配置运行相同的api,但突然间,我莫名其妙地能够识别,我现在得到了:

2021-05-19 12:18:32[错误]:等待命令时超时:";sam本地启动api">2021-05-19 12:18:32[错误]:启动本地API网关失败:等待命令超时:";sam本地启动api">2021-05-19 12:18:32[信息]:向本地API发送请求:http://127.0.0.1:5858/hello?

我的launch.json看起来像这样:

{
"type": "aws-sam",
"request": "direct-invoke",
"name": "Simple API lambda-nodejs14.x:HelloWorldFunction (nodejs14.x)",
"invokeTarget": {
"target": "api",
"templatePath": "${workspaceFolder}/lambda-nodejs14.x/template.yaml",
"logicalId": "HelloWorldFunction"
},
"api": {
"path": "/hello",
"httpMethod": "get",
"payload": {
"json": {}
}
},
"lambda": {
"runtime": "nodejs14.x"
},
"sam": {},
"aws":{}
}

通过尝试helloWorld测试项目,我将其简化为最简单的场景。

我的aws_toolkit日志如下:

2021-05-19 12:27:07〔信息〕:构建完成。2021-05-19 12:27:07[信息]:本地启动SAM应用程序2021-05-19 12:27:07[信息]正在运行:(未启动([C:\Program Files\Amazon\AWSACMLI\bin\sam.cmd本地启动api——模板C: \Users\USERTEST\AppData\Local\Temp\aws工具箱vscode\vsctklc1oS3\output\template.yaml--env-vars C:\Users\USERTEST\AppData\Local\Temp\aws工具箱vscode\vsctklc1oS3\env-vars.json--端口5858--调试端口5859]2021-05-19 12:27:07[信息]:AWS.运行命令2021-05-1912:27:07[错误]:等待时超时对于命令:";sam本地启动api";2021-05-19 12:27:07[错误]:失败启动本地API网关:等待命令时超时:";sam本地启动api";2021-05-19 12:27:07[警告]:[错误:超时等待命令:";sam本地启动api";在c: \Users\BogartLisa.vscode\extensions\amazonwebservices.aws-toolkit-vscode-1.25.0\dist\extension.js:2452:1782在async lv.invoke(c:\Users\BogartLisa.vscode\extension\amazonwebservices.aws-toolkit-vscode-1.25.0\dist\extension.js:2452:1677(]2021-05-19 12:27:07[信息]:向本地API发送请求:http://127.0.0.1:5858/hello?2021-05-19 12:27:07[详细]:SAM:命令已退出(代码:null(:PID 14376:[C:\ProgramFiles\Amazon\AWSACMLI\bin\sam.cmd本地启动api--模板C: \Users\USERTEST\AppData\Local\Temp\aws工具箱vscode\vsctklc1oS3\output\template.yaml--env-vars C:\Users\USERTEST\AppData\Local\Temp\aws工具箱vscode\vsctklc1oS3\env-vars.json--端口5858--调试端口5859]2021-05-19 12:27:12[信息]:已成功发送遥测批1 2021-0519 12:27:13[错误]:本地API在30次重试后未能响应(ECONNREFUSED(,路径:/你好

我的vs代码:版本:1.56.2(用户设置(提交:054a9295330880ed74ceaedda236253b4f39a335日期:2021-05-12T17:13:13.157Z电子:12.0.4铬:89.0.4389.14Node.js:14.16.0V8:8.9.255.24-电子.0操作系统:Windows_NT x64 10.0.17134

aws—版本aws-cli/2.1.27 Python/3.7.9 Windows/10 exe/AMD64提示/off

有人对我有什么想法吗??我没主意了

这个问题的答案是增加配置的等待连接到sam-cli:的最长时间

设置>扩展>AWS配置>Samcli>调试>附加>超时:毫秒

启动本地Lambda会话时等待SAM输出的最长时间(以毫秒为单位(

我的默认设置为30秒,不幸的是,我需要超过1.5分钟才能连接(但这完全是另一个问题(。