运行和调试本地 Amazon API Gateway 资源 - AWS Toolkit for VS Code

运行和调试本地 Amazon API Gateway 资源

您可以通过使用 invokeTarget.target=api 运行 type=aws-sam 的 VS Code 启动配置,运行或调试 template.yaml 中指定的 AWS SAM API Gateway 本地资源。

注意

API Gateway 支持两种类型的 API:REST 和 HTTP。但是,带有 AWS Toolkit for Visual Studio Code 的 API Gateway 功能仅支持 REST API。有时候 HTTP API 被称为“API Gateway V2 API”。

运行和调试本地 API Gateway 资源
  1. 选择以下方法之一以创建 AWS SAM API Gateway 资源的启动配置:

    • 选项 1:访问 AWS SAM 项目中的处理程序源代码(.js、.cs 或 .py 文件),将鼠标悬停在 Lambda 处理程序上,然后选择添加调试配置 CodeLens。然后,在菜单中,选择标记为 API 事件的项目。

    • 选项 2:编辑 launch.json 并使用以下语法创建新的启动配置。

      { "type": "aws-sam", "request": "direct-invoke", "name": "myConfig", "invokeTarget": { "target": "api", "templatePath": "n12/template.yaml", "logicalId": "HelloWorldFunction" }, "api": { "path": "/hello", "httpMethod": "post", "payload": { "json": {} } }, "sam": {}, "aws": {} }
  2. 在 VS Code 运行面板中,选择启动配置(在上面的示例中名为 myConfig)。

  3. (可选)将断点添加到您的 Lambda 项目代码中。

  4. 运行面板中,输入 F5 或选择播放

  5. 在输出窗格中,查看结果。

配置

在使用 invokeTarget.target 属性值 api 时,Toolkit 会更改启动配置验证和行为,以支持 api 字段。

{ "type": "aws-sam", "request": "direct-invoke", "name": "myConfig", "invokeTarget": { "target": "api", "templatePath": "n12/template.yaml", "logicalId": "HelloWorldFunction" }, "api": { "path": "/hello", "httpMethod": "post", "payload": { "json": {} }, "querystring": "abc=def&qrs=tuv", "headers": { "cookie": "name=value; name2=value2; name3=value3" } }, "sam": {}, "aws": {} }

按以下示例的方式替换值:

invokeTarget.logicalId

API 资源。

path

启动 Config 请求的 API 路径,如 "path": "/hello"

必须是从 invokeTarget.templatePath 指定的 template.yaml 解析出的有效 API 路径。

httpMethod

以下任一动词:“delete”、“get”、“head”、“options”、“patch”、“post” 和“put”。

payload

要在请求中发送的 JSON 负载(HTTP 正文),其结构和规则与 lambda.payload 字段相同。

payload.path 指向包含 JSON 负载的文件。

payload.json 指定内联 JSON 负载。

headers

可选名称-值对映射,用于指定要包含在请求中的 HTTP 标头,如以下示例中所示。

"headers": { "accept-encoding": "deflate, gzip;q=1.0, *;q=0.5", "accept-language": "fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5", "cookie": "name=value; name2=value2; name3=value3", "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36", }
querystring

可选字符串,设置请求的 querystring,如 "querystring": "abc=def&ghi=jkl"

AWS

AWS 连接信息提供的方式。有关更多信息,请参阅 调试无服务器应用程序的配置选项 部分中的 AWS 连接(“aws”)属性表。

sam

AWS SAM CLI 构建应用程序的方式。有关更多信息,请参阅 调试无服务器应用程序的配置选项 部分中的 AWS SAM CLI(“sam”)属性表。