本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
執行並除錯本機 Amazon API Gateway 資源
您可以運行或調試AWS SAMAPI Gateway 本機資源, 在template.yaml
,通過運行 VS 代碼啟動配置type=aws-sam
與invokeTarget.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 資源
-
選擇以下其中一種方法來建立 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": {} }
-
-
在 VS 代碼中執行」面板中,選擇啟動配置(命名
myConfig
在上面的例子中)。 -
(選用) 在 Lambda 專案程式碼中新增中斷點。
-
類型F5或選擇Play (播放)中的執行資料表面板。
-
在輸出窗格中檢視結果。
組態
如果您使用 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(「山姆」)屬性資料表除錯無伺服器應用程式的組態選項區段。