1

几天来,我一直在努力解决这个问题,但我却一无所获。我有一个可以通过命令行在本地运行的 API -

山姆本地启动-api

或者

sam 本地调用 HelloWorldFunction

我曾经能够通过我的 launch.json 配置运行相同的 api,但突然间我无法识别,我现在得到:

2021-05-19 12:18:32 [错误]:等待命令时超时:“sam local start-api” 2021-05-19 12:18:32 [错误]:无法启动本地 API 网关:超时等待命令:“sam local start-api” 2021-05-19 12:18:32 [INFO]:向本地 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 [INFO]:在本地启动 SAM 应用程序 2021-05-19 12:27:07 [INFO]:运行:(未启动)[C:\Program Files\Amazon\AWSSAMCLI\bin \sam.cmd local start-api --template C:\Users\USERTEST\AppData\Local\Temp\aws-toolkit-vscode\vsctklc1oS3\output\template.yaml --env-vars C:\Users\USERTEST\AppData \Local\Temp\aws-toolkit-vscode\vsctklc1oS3\env-vars.json --port 5858 --debug-port 5859] 2021-05-19 12:27:07 [INFO]:AWS.running.command 2021- 05-19 12:27:07 [错误]:等待命令时超时:“sam local start-api” 2021-05-19 12:27:07 [错误]:无法启动本地 API 网关:等待时超时命令:“sam local start-api”2021-05-19 12:27:07 [警告]:[错误:等待命令时超时:c:\Users\BogartLisa 的“sam local start-api”。 http://127.0.0.1:5858/你好?2021-05-19 12:27:07 [详细]:SAM:命令退出(代码:null):PID 14376:[C:\Program Files\Amazon\AWSSAMCLI\bin\sam.cmd local start-api --template C:\Users\USERTEST\AppData\Local\Temp\aws-toolkit-vscode\vsctklc1oS3\output\template.yaml --env-vars C:\Users\USERTEST\AppData\Local\Temp\aws-toolkit-vscode\ vsctklc1oS3\env-vars.json --port 5858 --debug-port 5859] 2021-05-19 12:27:12 [INFO]:成功发送遥测批次 1 2021-05-19 12:27:13 [ ERROR]:本地 API 在 30 次重试后未能响应 (ECONNREFUSED),路径:/hello

我的 vs 代码:版本:1.56.2(用户设置)提交:054a9295330880ed74ceaedda236253b4f39a335 日期:2021-05-12T17:13:13.157Z 电子:12.0.4 Chrome:89.0.4389.114 Node.js:14.16.024 V8:8。 -electron.0 操作系统:Windows_NT x64 10.0.17134

aws --version aws-cli/2.1.27 Python/3.7.9 Windows/10 exe/AMD64 提示/关闭

有人对我有什么想法吗?我没有想法

4

1 回答 1

3

这个问题的答案是增加配置的等待附加到 sam cli 的最大时间:

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

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

我的默认设置为 30 秒,不幸的是,对我来说,附加时间超过 1.5 分钟(但这完全是“另一个问题”)。

于 2021-05-19T21:44:07.033 回答