執行並除錯本機 Amazon API Gateway 資源 - AWS Toolkit for VS Code

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

執行並除錯本機 Amazon API Gateway 資源

您可以運行或調試AWS SAMAPI Gateway 本機資源, 在template.yaml,通過運行 VS 代碼啟動配置type=aws-saminvokeTarget.target=api

注意

API Gateway 支援 REST 和 HTTP 這兩種類型的 API。不過,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 Gateway 事件

    • 選項 2:Edit (編輯)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,工具組會變更啟動組態驗證和行為,以便支援 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 資源。

路徑

啟動組態請求的 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 酬載內嵌。

標頭

選用的名稱/值組對應,用來指定要包含在請求中的 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山姆 CLI(「山姆」)屬性資料表除錯無伺服器應用程式的組態選項區段。