

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

# コードから Lambda 関数を直接実行およびデバッグ
<a name="serverless-apps-run-debug-no-template"></a>

 AWS SAM アプリケーションをテストするときは、Lambda 関数のみを実行およびデバッグし、 AWS SAM テンプレートが定義する他のリソースを除外することを選択できます。このアプローチでは、[CodeLens](https://code.visualstudio.com/blogs/2017/02/12/code-lens-roundup) 機能を使用して、直接呼び出すことができるソースコード内の Lambda 関数ハンドラを識別します。

CodeLens によって検出される Lambda ハンドラーは、アプリケーションで使用している言語とランタイムによって異なります。


|  言語/ランタイム | CodeLens インジケーターによって識別される Lambda 関数の基準 | 
| --- | --- | 
| C\# (dotnetcore2.1, 3.1; .NET 5.0) | 関数には以下の特徴があります。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-no-template.html)[ms-dotnettools.csharp 拡張機能](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp) (または C\# の言語シンボルを提供する拡張機能) がインストールされ、有効になっています。 | 
| JavaScript/TypeScript (Node.js 12.x, 14.x) |  関数には以下の特徴があります。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-no-template.html)  | 
| Python (3.7、3.8、3.9、3.10、3.11、3.12) |  関数には以下の特徴があります。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-no-template.html)[ms-python.python 拡張機能](http://marketplace.visualstudio.com/items?itemName=ms-python.python) (または Python の言語シンボルを提供する拡張機能) がインストールされ、有効になっています。 | 
| Java (8, 8.al2, 11) |  関数には以下の特徴があります。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-no-template.html)[redhat.java 拡張機能](https://marketplace.visualstudio.com/items?itemName=redhat.java) (または Java の言語シンボルを提供する拡張機能) がインストールされ、有効になっています。この拡張機能には、どの Java ランタイムを使用していても Java 11 が必要です。<br />[vscjava.vscode-java-debug](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-debug) 拡張機能 (または Java デバッガを提供する拡張機能) がインストールされ、有効になっています。 | 
| Go (1.x) |  関数には以下の特徴があります。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-no-template.html)[golang.go 拡張機能](https://marketplace.visualstudio.com/items?itemName=golang.Go) がインストールされ、構成され、有効になっています。 | 

# サーバーレスアプリケーションをアプリケーションコードから直接実行およびデバッグ




1. VS Code のファイルエクスプローラでアプリケーションファイルを表示するには、[**View**] (表示)、[**Explorer**] (エクスプローラ) を選択します。

1. アプリケーションフォルダ (*my-sample-app* など) から、関数フォルダー (この場合、*hello-world*) を拡張し、`app.js` ファイルを開きます。

1. 適格な Lambda 関数 ハンドラーを識別する CodeLens インジケータで、`Add Debug Configuration` を選択します。  
![Lambda 関数ハンドラーの CodeLens インジケータ内の [デバッグ設定の追加] オプションにアクセスします。](http://docs.aws.amazon.com/ja_jp/toolkit-for-vscode/latest/userguide/images/sam-codelens-lambda.png)

1. [**Command Palette**] (コマンドパレット) で、 AWS SAM アプリケーションが実行するランタイムを選択します。

1. `launch.json` ファイルのエディタでは、次の設定プロパティの値を編集または確認します。
   + `"name"` – 読みやすい名前を入力して、[**実行**] ビューの [**設定**] ドロップダウンフィールドに表示します。
   + `"target"` – 値が `"code"` で、Lambda 関数ハンドラを直接呼び出せることを確認します。
   + `"lambdaHandler"` – 関数を呼び出すために Lambda が呼び出すコード内のメソッドの名前を入力します。例えば、JavaScript のアプリケーションでは、デフォルトは `app.lambdaHandler` です。
   + `"projectRoot"` – Lambda 関数を含むアプリケーションファイルにパスを入力します。
   + `"runtime"` – Lambda 実行環境の有効なランタイムを入力または確認します。例えば、`"nodejs.12x"`。
   + `"payload"` – 以下のいずれかのオプションを選択して、Lambda 関数に入力として提供するイベントペイロードを定義します。
     + `"json"`: イベントペイロードを定義する JSON 形式のキーバリューペア。
     + `"path"`: イベントペイロードとして使用されるファイルへのパス。

     以下の例では、`"json"` オプションは、ペイロードを定義します。  
![Lambda 関数を直接呼び出す launch.json ファイルの設定。](http://docs.aws.amazon.com/ja_jp/toolkit-for-vscode/latest/userguide/images/direct_invoke_config_updated_with_payload_field.png)

   `launch.json` ファイル内のこれらと他の入力に関する詳細は、「[サーバーレスアプリケーションのデバッグ用設定オプション](serverless-apps-run-debug-config-ref.md)」を参照してください。

1. 

   デバッグ設定が満足なものであれば、[**RUN**] の横の緑の再生矢印を選択して、デバッグをスタートします。

   デバッグセッションが開始すると、**デバッグコンソール**パネルには、デバッグ出力が表示され、Lambda 関数が返す値が表示されます。( AWS SAM アプリケーションをデバッグする場合、**AWS Toolkit** は**出力**パネルの**出力**チャネルとして選択されます）。