

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

# を使用して関数をローカルでデバッグする AWS SAM
<a name="serverless-sam-cli-using-debugging"></a>

さまざまな AWS ツールキットやデバッガー AWS SAM で を使用して、サーバーレスアプリケーションをローカルでテストおよびデバッグできます。Lambda 関数のステップスルーデバッグを使用すると、アプリケーションの 1 行または命令の問題を、ローカル環境の時点で特定し修正できます。

Lambda 関数のローカルでのステップスルーデバッグ実行には、ブレークポイントの設定、変数の調査、関数コードを一度に 1 行ずつ実行する、などの手法が含まれます。ローカルステップスルーデバッグは、クラウドで発生する可能性のある問題の検出とトラブルシューティングを可能することによって、フィードバックループを強化します。

 AWS Toolkits を使用してデバッグでき、 AWS SAM デバッグモードで を実行することもできます。詳細については、このセクションの各トピックを参照してください。

## AWS ツールキットの使用
<a name="serverless-sam-cli-using-aws-toolkits"></a>

AWS ツールキットは、ブレークポイントの設定、変数の検査、関数コードの実行など、多くの一般的なデバッグタスクを一度に 1 行ずつ実行できる統合開発環境 (IDE) プラグインです。 AWS ツールキットを使用すると、 を使用して構築されたサーバーレスアプリケーションを簡単に開発、デバッグ、デプロイできます AWS SAM。これらは、統合開発環境 (IDE) に統合された Lambda 関数の構築、テスト、デバッグ、デプロイ、および呼び出しのエクスペリエンスを提供します。

で使用できる AWS ツールキットの詳細については AWS SAM、以下を参照してください。
+ [AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/)
+ [AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/)
+ [AWS Toolkit for JetBrains](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/)

IDEs とランタイムのさまざまな組み合わせで動作するさまざまな AWS ツールキットがあります。次の表に、 AWS SAM アプリケーションのステップスルーデバッグをサポートする一般的な IDE/ランタイムの組み合わせを示します。


| IDE | 実行時間 | AWS ツールキット | ステップスルーデバッグの手順 | 
| --- | --- | --- | --- | 
| Visual Studio Code |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/serverless-sam-cli-using-debugging.html)  | AWS Toolkit for Visual Studio Code | AWS Toolkit for Visual Studio Code ユーザーガイドの「[Working with AWS サーバーレスアプリケーション](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/serverless-apps.html)」  | 
| AWS Cloud9 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/serverless-sam-cli-using-debugging.html)  | AWS Cloud9、 AWS ツールキットが有効になっている 1 |  *AWS Cloud9 ユーザーガイド*[の AWS Toolkit を使用した AWS サーバーレスアプリケーションの操作](https://docs.aws.amazon.com/cloud9/latest/user-guide/serverless-apps-toolkit.html)。  | 
| WebStorm | Node.js | AWS Toolkit for JetBrains2 |  *AWS Toolkit for JetBrains* の「[Running (invoking) or debugging a local function](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html)」  | 
| PyCharm | Python | AWS Toolkit for JetBrains2 |  *AWS Toolkit for JetBrains* の「[Running (invoking) or debugging a local function](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html)」  | 
| Rider | .NET | AWS Toolkit for JetBrains2 |  *AWS Toolkit for JetBrains* の「[Running (invoking) or debugging a local function](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html)」  | 
| IntelliJ | Java | AWS Toolkit for JetBrains2 |  *AWS Toolkit for JetBrains* の「[Running (invoking) or debugging a local function](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html)」  | 
| GoLand | Go | AWS Toolkit for JetBrains2 |  *AWS Toolkit for JetBrains* の「[Running (invoking) or debugging a local function](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html)」  | 

**注意**:

1.  AWS Cloud9 を使用して AWS SAM アプリケーションをステップスルーデバッグするには、 AWS ツールキットを有効にする必要があります。詳細については、「 *AWS Cloud9 ユーザーガイド*[」の AWS 「ツールキットの有効化](https://docs.aws.amazon.com/cloud9/latest/user-guide/toolkit-welcome.html#access-toolkit)」を参照してください。

1. を使用して AWS SAM アプリケーションを AWS Toolkit for JetBrains ステップスルーデバッグするには、まず の[「 のインストール AWS Toolkit for JetBrains](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/setup-toolkit.html)」にある手順に従ってアプリケーションをインストールして設定する必要があります*AWS Toolkit for JetBrains*。

## デバッグモードで AWS SAM ローカルで実行する
<a name="serverless-sam-cli-running-locally"></a>

Toolkit AWS との統合に加えて、 AWS SAM デバッグモードで を実行して、[ptvsd](https://pypi.org/project/ptvsd/) や [delve](https://github.com/go-delve/delve) などのサードパーティーのデバッガーにアタッチすることもできます。

 AWS SAM デバッグモードで を実行するには、 コマンドまたは [sam local invoke](sam-cli-command-reference-sam-local-invoke.md)オプションまたは `-d`オプション[sam local start-api](sam-cli-command-reference-sam-local-start-api.md)で `--debug-port`を使用します。

例えば、次のようになります。

```
# Invoke a function locally in debug mode on port 5858
sam local invoke -d 5858 <function logical id>

# Start local API Gateway in debug mode on port 5858
sam local start-api -d 5858
```

**注記**  
`sam local start-api` を使用している場合は、ローカル API Gateway インスタンスがすべての Lambda 関数を公開します。ただし、単一のデバッグポートしか指定できないため、デバッグできるのは一度に 1 つの関数のみです。 AWS SAM CLI がポートにバインドする前に、API を呼び出す必要があります。そうすることで、デバッガーによる接続が可能になります。