Azure Spring Apps でアプリをリモートでデバッグする
Note
Basic、Standard、Enterprise プランは、2025 年 3 月中旬以降非推奨になり、廃止期間は 3 年間です。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の廃止のお知らせ」を参照してください。
Standard 従量課金と専用プランは、2024 年 9 月 30 日以降に非推奨になり、6 か月後に完全にシャットダウンされます。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の Standard 従量課金および専用プランを Azure Container Apps に移行する」を参照してください。
この記事の適用対象:✅ 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 を使用してアプリケーションのリモート デバッグを有効にするには、次の手順に従います。
Azure ロールを割り当てる
アプリ インスタンスをリモートでデバッグするには、Microsoft.AppPlatform/Spring/apps/deployments/remotedebugging/action
データ アクションのアクセス許可が含まれる、ロール Azure Spring Apps Remote Debugging Role
が付与されている必要があります。
Azure ロールは、Azure portal または Azure CLI を使用して割り当てることができます。
Azure portal を使用して Azure ロールを割り当てるには、次の手順に従います。
Azure Portalを開きます。
Azure Spring Apps サービス インスタンスを開きます。
ナビゲーション ウィンドウで [アクセス制御 (IAM)] を選びます。
[アクセスの制御 (IAM)] ページで [追加] を選び、[ロールの割り当ての追加] を選んでください。
[ロールの割り当ての追加] ページの [名前] の一覧で、[Azure Spring Apps リモート デバッグ ロール] を選び、[次へ] を選びます。
[メンバー] を選び、自分のユーザー名を検索して選びます。
[レビューと割り当て] を選択します。
アプリ インスタンスをリモートでデバッグする
アプリ インスタンスは、Azure Toolkit for IntelliJ または Azure Spring Apps for VS Code 拡張機能を使用してリモートでデバッグできます。
このセクションでは、Azure Toolkit for IntelliJ を使用してアプリ インスタンスをリモートでデバッグする方法について説明します。
前提条件
- Azure Toolkit for IntelliJ。
- IntelliJ IDEA の Ultimate または Community エディション。
リモート デバッグを有効または無効にする
リモート デバッグを有効または無効にするには、次の手順に従います。
[デバッガーの接続]
デバッガーをアタッチするには、次の手順に従います。
アプリ インスタンスを選び、[デバッガーのアタッチ] を選びます。 IntelliJ がアプリ インスタンスに接続し、リモート デバッグが開始されます。
Azure Toolkit for IntelliJ により、リモート デバッグ構成が作成されます。 これは [リモート Jvm デバッグ] の下にあります。リモート デバッグに使用するソース コードへのモジュール クラス パスを構成します。
トラブルシューティング
このセクションでは、トラブルシューティング情報を提供します。
デバッガーをアタッチできず、
java.net.SocketException, connection reset
やFailed to attach to remote debugger, ClosedConnectionException
のようなエラーが発生した場合は、次のアクションを実行します。デバッガーを正常にアタッチしたが、アプリ インスタンスをリモートでデバッグできない場合は、次のアクションを実行します。
- デバッグするソース コードが IDE に含まれていることを確認します。
- デバッグ構成に正しいモジュール クラス パスがあることを確認します。
制限事項
リモート デバッグは、Java アプリケーションでのみサポートされます。
プラン | デプロイの種類 | サポートされています |
---|---|---|
Standard プランと Basic プラン | Jar | はい |
Standard プランと Basic プラン | ソース コード (Java) | はい |
Standard プランと Basic プラン | カスタム イメージ | いいえ |
Enterprise プラン | Java Application | はい |
Enterprise プラン | ソース コード (Java) | はい |
Enterprise プラン | カスタム イメージ | いいえ |
ヒント
- Java リモート デバッグは、リモート コード実行を可能にするため危険です。 Azure Spring Apps は、クライアント IDE とリモート アプリケーション間の通信をセキュリティで保護するのに役立ちます。 ただし、リモート デバッグを無効にし、完了後に RBAC ロールを削除する必要があります。
- トラフィックをインスタンスに確実に送信できるように、アプリ インスタンスを 1 つにスケールインする必要があります。