次の方法で共有


Azure Spring Apps でアプリをリモートでデバッグする

Note

Azure Spring Apps は、Azure Spring Cloud サービスの新しい名前です。 サービスの名前は新しくなりましたが、スクリーンショット、ビデオ、図などの資産の更新に取り組んでいる間、場所によってはしばらく古い名前が表示されます。

この記事の適用対象: ✔️ Basic または Standard ✔️ Enterprise

この機能は、Azure Spring Apps でアプリケーションのリモート デバッグを有効にする方法について説明しています。

前提条件

  • Azure Spring Apps 拡張機能を使用した Azure CLI。 次のコマンドを使用して、以前のバージョンを削除し、最新の拡張機能をインストールします。 以前に spring-cloud 拡張機能をインストールした場合は、構成とバージョンの不一致を回避するために、それをアンインストールしてください。

    az extension remove --name spring
    az extension add --name spring
    az extension remove --name spring-cloud
    
  • Azure Spring Apps のデプロイされたアプリケーション。

リモート デバッグを有効または無効にする

セキュリティ上の理由から、既定では、Azure Spring Apps でのリモート デバッグは無効になっています。 会社のポリシーに基づいて、アプリのリモート デバッグを自分で有効にすることも、管理者に有効にしてもらうこともできます。 リモート デバッグは、Azure CLI、Azure portal、または VS Code 拡張機能を使用して有効または無効にすることができます。

Azure portal を使用してアプリケーションのリモート デバッグを有効にするには、次の手順に従います。

  1. 目的のアプリケーションのページに移動します。

  2. 左側のナビゲーション ウィンドウの [設定] で、[リモート デバッグ] を選びます。

  3. [リモート デバッグ] ページで、リモート デバッグを有効にして、デバッグ ポートを指定します。

    [リモート デバッグ] および [デバッグ ポート] オプションが選択されている [リモート デバッグ] ページを示す Azure portal のスクリーンショット。

Azure ロールを割り当てる

アプリ インスタンスをリモートでデバッグするには、Microsoft.AppPlatform/Spring/apps/deployments/remotedebugging/action データ アクションのアクセス許可が含まれる、ロール Azure Spring Apps Remote Debugging Role が付与されている必要があります。

Azure ロールは、Azure portal または Azure CLI を使用して割り当てることができます。

Azure portal を使用して Azure ロールを割り当てるには、次の手順に従います。

  1. Azure Portalを開きます。

  2. Azure Spring Apps サービス インスタンスを開きます。

  3. ナビゲーション ウィンドウで [アクセス制御 (IAM)] を選びます。

  4. [アクセスの制御 (IAM)] ページで [追加] を選び、[ロールの割り当ての追加] を選んでください。

    [ロールの割り当ての追加] オプションが強調表示されている Azure Spring Apps インスタンスの [アクセス制御 (IAM)] ページを示す Azure portal のスクリーンショット。

  5. [ロールの割り当ての追加] ページの [名前] の一覧で、[Azure Spring Apps リモート デバッグ ロール] を選び、[次へ] を選びます。

    Azure portal の [ロールの割り当ての追加] ページのスクリーンショット。[Azure Spring Apps リモート デバッグ ロール] 名が強調表示されています。

  6. [メンバー] を選び、自分のユーザー名を検索して選びます。

  7. [レビューと割り当て] を選択します。

アプリ インスタンスをリモートでデバッグする

アプリ インスタンスは、Azure Toolkit for IntelliJ または Azure Spring Apps for VS Code 拡張機能を使用してリモートでデバッグできます。

このセクションでは、Azure Toolkit for IntelliJ を使用してアプリ インスタンスをリモートでデバッグする方法について説明します。

前提条件

リモート デバッグを有効または無効にする

リモート デバッグを有効または無効にするには、次の手順に従います。

  1. Azure Explorer で自分の Azure アカウントにサインインします。

  2. アプリ インスタンスを選び、[リモート デバッグを有効にする] を選びます。

    [リモート デバッグを有効にする] メニュー オプションを示す IntelliJ のスクリーンショット。

[デバッガーの接続]

デバッガーをアタッチするには、次の手順に従います。

  1. アプリ インスタンスを選び、[デバッガーのアタッチ] を選びます。 IntelliJ がアプリ インスタンスに接続し、リモート デバッグが開始されます。

    [デバッガーのアタッチ] メニュー オプションを示す IntelliJ のスクリーンショット。

  2. Azure Toolkit for IntelliJ により、リモート デバッグ構成が作成されます。 これは [リモート Jvm デバッグ] の下にあります。リモート デバッグに使用するソース コードへのモジュール クラス パスを構成します。

    [実行/デバッグ構成] ページを示す IntelliJ のスクリーンショット。

トラブルシューティング

このセクションでは、トラブルシューティング情報を提供します。

  • デバッガーをアタッチできず、java.net.SocketException, connection resetFailed to attach to remote debugger, ClosedConnectionException のようなエラーが発生した場合は、次のアクションを実行します。

    • RBAC ロールを確認して、アプリ インスタンスをリモートでデバッグする権限があることを確認します。

    • 有効なインスタンスに接続していることを確認します。 デプロイを更新して、最新のインスタンスを取得します。

      [アプリ インスタンス] ノードの [更新] メニュー オプションを示す IntelliJ プロジェクト エクスプローラーのスクリーンショット。

  • デバッガーを正常にアタッチしたが、アプリ インスタンスをリモートでデバッグできない場合は、次のアクションを実行します。

    • デバッグするソース コードが IDE に含まれていることを確認します。
    • デバッグ構成に正しいモジュール クラス パスがあることを確認します。

制限事項

リモート デバッグは、Java アプリケーションでのみサポートされます。

プラン デプロイの種類 サポートされています
Standard プランと Basic プラン Jar はい
Standard プランと Basic プラン ソース コード (Java) はい
Standard プランと Basic プラン カスタム イメージ いいえ
Enterprise プラン Java Application はい
Enterprise プラン ソース コード (Java) はい
Enterprise プラン カスタム イメージ いいえ

ヒント

  • Java リモート デバッグは、リモート コード実行を可能にするため危険です。 Azure Spring Apps は、クライアント IDE とリモート アプリケーション間の通信をセキュリティで保護するのに役立ちます。 ただし、リモート デバッグを無効にし、完了後に RBAC ロールを削除する必要があります。
  • トラフィックをインスタンスに確実に送信できるように、アプリ インスタンスを 1 つにスケールインする必要があります。

次のステップ