Cloud Code を使用すると、Cloud Run に似た環境で Cloud Run サービスをローカルにデバッグできます。ブレークポイントの設定、コードのステップ実行、コンテナ内で実行されているリモート サービスのデバッグを行うことができます。
Cloud Code を使用すると、ソースコードを変更して反復処理しながらアプリケーションをデバッグすることもできます。
デバッグ構成の定義
サービスをデバッグする前に、デバッグ構成を作成する必要があります。
- ナビゲーション バーの [Run/Debug configurations] セレクタに移動して、[構成を編集] をクリックします。
- [Cloud Code: Cloud Run] で [Cloud Run: Run Locally] を選択します。
- [OK] をクリックします。
サービスのデバッグ
サービスをデバッグするには、次の手順に沿って操作します。
[Cloud Run: Run Locally] の
[Debug] をクリックして、デバッグモードで開発サイクルを開始します。
Cloud Code はデバッグ セッションをアタッチします。成功すると、デバッグツール ウィンドウが開き、[コンソール] タブ内で接続が確認されます。
ブレークポイントを追加するコードの実行可能行の左横(gutter)をクリックします。
赤い塗りつぶしの円はアクティブなブレークポイントを示し、赤で囲まれた白抜きの円は無効なブレークポイントを示します。
実行中のサービスにアクセスするには、[Event Log] パネルに表示されている URL をクリックします。
URL をクリックすると、新しいリクエストがサービスに送信され、ブレークポイントが設定された行で一時停止します。

デバッグ セッションを終了するには、[Cloud Run: Run Locally] の実行構成の停止アイコンをクリックします。
サポートされている IDE
次の表に、Cloud Code がデバッグ用にサポートしている言語と IDE を示します。また、必要なプラグインも示しています(該当する場合)。
| 言語 | サポートされている IDE とエディション | 必要なプラグイン |
|---|---|---|
| Java | IntelliJ IDEA Ultimate | なし |
| IntelliJ IDEA Community | なし | |
| Go | IntelliJ IDEA Ultimate | Go プラグイン |
| GoLand | なし | |
| Node.js | IntelliJ IDEA Ultimate | Node.js プラグイン |
| WebStorm | なし | |
| Python | IntelliJ IDEA Ultimate | Python プラグイン |
| PyCharm Professional | なし |
IDE のサポートの詳細については、サポートされている JetBrains IDE をご覧ください。
Cloud Code を使用すると、次の言語のコンテナで実行されるリモート アプリケーションのブレークポイントの設定やデバッグを行うことができます。
Java
Cloud Code では、デバッグを有効にするために、適切な JDWP 構成とともに環境変数 JAVA_TOOL_OPTIONS が自動的に追加されます。JAVA_TOOL_OPTIONS がすでに存在する場合、Cloud Code は JAVA_TOOL_OPTIONS で指定された既存の設定を使用します。
Node.js
アプリケーションの構造とイメージビルド構成によっては、デバッガでローカルソースをコンテナ内のリモートソースにマッピングできるようにする必要がある可能性があります。これにより、Node デバッガがブレークポイントを正しく処理できるようになります。
これは、次のいずれかの方法で構成できます。
手動設定
プルダウンから [Cloud Run: Run Locally] の実行構成を選択し、[Edit Configurations] をクリックします。[Debug] タブで、ローカル アプリケーション ソースからリモート コンテナのソースのロケーションへのソース マッピングを構成します。
![[デバッグ] タブのソース マッピング セクションでソースの場所を選択する](https://docs.cloud.google.com/static/code/docs/intellij/images/source-mappings.png?authuser=6&hl=ja)
設定オプション
- File/directory - Cloud Run で実行されるアプリケーションのローカル ファイルまたはディレクトリ。
- Remote path - Cloud Run のコンテナ内で実行されるファイルまたはディレクトリへのパス。
自動設定
このマッピングを Cloud Code に任せることもできます。デバッグ セッションを開始すると、Cloud Code はこのマッピングを自動的に推定しようとします。推定されたマッピングは、デバッグするアーティファクトごとに 1 つ作成されるダイアログに表示されます。

設定オプション
- Local path - デバッグしているアーティファクトのルートへのローカルパス。
- Remote path - Cloud Run のコンテナ内で実行されるファイルまたはディレクトリへのパス。この値は、独自の値でオーバーライドできます。[Cancel] をクリックすると、マッピングは適用されません。
Go
デバッグ用にアプリを設定するには、アプリケーションが Go モジュールベースのアプリケーションであり、コンテナで標準 Go ランタイム環境変数(GODEBUG、GOGC、GOMAXPROCS、GOTRACEBACK など)のいずれかが設定されて Go ベースであることが示されている必要があります。GOTRACEBACK=single は Go のデフォルト設定で、GOTRACEBACK=all は一般的に有用な構成です。
必要に応じて、-gcflags='all=-N -l' オプションを指定してアプリをビルドし、最適化を無効にすることをおすすめします。Skaffold プロファイルはこの目的で使用する便利なオプションであり、[Build/Deploy] タブの [Run] 構成の [Deployment Profile] フィールドで設定できます。
Python
デバッグ用にアプリケーションを構成するには、次の前提条件を満たす必要があります。
IDE、エディション、プラグインとの互換性がある
互換性のある IDE、エディション、プラグインについては、サポートされる IDE をご覧ください。
Skaffold のバージョンが 1.25.0 以上
Cloud Code で、依存関係を管理するか、ローカルの Skaffold インストールを指すように指定できます。[Preferences] > [Tools] > [Cloud Code] > [Dependencies] をご覧ください。
Python インタープリタが構成されている
プロジェクトで Python インタープリタを構成していない場合、基盤となる Python デバッガである
pydevdを実行することができないため、デバッグは機能しません。IDE 構成方法 IntelliJ IDEA Cloud Code を使用した Python のデバッグでは、プロジェクト用に Python SDK を構成する必要があります。
[File] > [Project Structure] に移動し、[Project] タブで Python SDK を追加します。存在しない場合は、[SDK] タブで追加します。PyCharm [File] > [Settings] > [Project] > [Python Interpreter] に移動するか、Mac OS X の場合は [PyCharm] > [Preferences] > [Project] > [Python Interpreter] に移動して、Python インタープリタを追加します。
詳細については、Skaffold のデバッグのドキュメントをご覧ください。