ローカル Amazon API Gateway リソースの実行とデバッグ - AWS Toolkit for VS Code

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ローカル Amazon API Gateway リソースの実行とデバッグ

invokeTarget.target=api と共に VS Codeの type=aws-sam 起動設定を実行することによって、template.yaml に指定されている AWS SAM API Gateway のローカルリソースを実行またはデバッグすることができます。

注記

API Gateway は、REST と HTTP の 2 種類の API をサポートしています。しかし、AWS Toolkit for Visual Studio Code がある API Gateway の特徴は、REST API のみをサポートします。時に、HTTP API は「API Gateway V2 API」と呼ばれます。

ローカル API Gateway リソースを実行およびデバッグ
  1. 以下のいずれかのアプローチを選択し、AWS SAM API Gateway リソース用起動 Config を作成:

    • オプション 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 [Run] (実行) パネルは、起動設定 (上の例では myConfig という名前) を選択します。

  3. (オプション) Lambda プロジェクトコードにブレークポイントを追加します。

  4. [F5] をタイプするか、または [Run] (実行) パネルの [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」(率いる、ヘッド)、「option」(オプションを与える)、「patch」(パッチ)、「post」(転記、投稿)、「put」(プット、つける) のいずれかの動詞とすることができます。

payload

リクエストで送信する lambda.payload フィールドと同じ構造とルールを持つ JSON ペイロード (HTTP 本文)。

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)プロパティ] テーブルを参照してください。