Lambda 関数のローカルでのステップスルーデバッグ - AWS Serverless Application Model

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

Lambda 関数のローカルでのステップスルーデバッグ

AWS SAM をさまざまな AWS ツールキットおよびデバッガーと共に使用して、サーバーレスアプリケーションをローカルでテストおよびデバッグできます。

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

AWS ツールキットの使用

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

AWS SAM と共に使用できる AWS Toolkit の詳細については、以下を参照してください。

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

IDE ランタイム AWS Toolkit ステップスルーデバッグの手順
Visual Studio Code
  • Node.js

  • Python

  • .NET

  • Java

  • Go

AWS Toolkit for Visual Studio Code AWS サーバーレスアプリケーションを使用する()AWS Toolkit for Visual Studio Code
AWS Cloud9
  • Node.js

  • Python

AWS Cloud9、AWS ツールキットが有効になっている1

AWS Toolkit を使用した AWS サーバーレスアプリケーションの操作()AWS Cloud9 ユーザーガイド

ウェブストーム Node.js AWS Toolkit for Jetbrains2

ローカル関数の実行(呼び出し)またはデバッグ()AWS Toolkit for Jetbrains

PyCharm Python AWS Toolkit for Jetbrains2

ローカル関数の実行(呼び出し)またはデバッグ()AWS Toolkit for Jetbrains

ライダー .NET AWS Toolkit for Jetbrains2

ローカル関数の実行(呼び出し)またはデバッグ()AWS Toolkit for Jetbrains

IntelliJ Java AWS Toolkit for Jetbrains2

ローカル関数の実行(呼び出し)またはデバッグ()AWS Toolkit for Jetbrains

ゴーランド Go AWS Toolkit for Jetbrains2

ローカル関数の実行(呼び出し)またはデバッグ()AWS Toolkit for Jetbrains

メモ:

  1. AWS Cloud9 を使用して AWS SAM アプリケーションをステップスルーデバッグするには、AWS Toolkit を有効にする必要があります。詳細については、「」を参照してください。AWS Toolkit の有効化()AWS Cloud9 ユーザーガイド

  2. AWS Toolkit for JetBrains を使用して AWS SAM アプリケーションをステップスルーしてデバッグするには、まずAWS Toolkit for Jetbrains をインストールする()AWS Toolkit for Jetbrains

デバッグモードで AWS SAM をローカルで実行する

AWS Toolkits との統合に加えて、AWS SAM を「デバッグモード」で実行して、Ptvsdまたは掘り下げ

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

次に例を示します。

# 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 つであるため、一度に 1 つの関数のみデバッグできます。AWS SAM CLI がポートにバインドする前に API を呼び出す必要があります。これにより、デバッガーが接続できるようになります。