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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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

你可以运行或调试AWS SAMAPI Gateway 本地资源,在中指定template.yaml,通过运行 VS Code 启动配置type=aws-saminvokeTarget.target=api.

注意

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

运行和调试本地 API Gateway 资源

  1. 选择以下方法之一以创建 AWS SAM API Gateway 资源的启动配置:

    • 选项 1:访问位置在部分下,访问处理程序源代码(.js、.cs 或 .py 文件)AWS SAM项目,将鼠标悬停在 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 代码中运行面板中,选择启动配置(名为myConfig在上面的例子中)。

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

  4. 类型F5或者选择Play中的运行面板。

  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 构建应用程序的方式。有关更多信息,请参阅 。AWSSAM CLI (“sam”) 属性表在调试无服务器应用程序的配置选项部分。