次の方法で共有


トラブルシューティングのためにアプリ インスタンスに接続する

Note

BasicStandardEnterprise プランは、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 にはさまざまなマネージド トラブルシューティング アプローチが用意されていますが、シェル環境を使用して高度なトラブルシューティングを行うことができます。 たとえば、次のトラブルシューティング タスクを実行したい場合があります。

  • Java Development Kit (JDK) ツールを直接使用する。
  • 仮想ネットワーク インスタンスと非仮想ネットワーク インスタンスの両方のネットワーク接続と API 呼び出しの待機時間について、アプリのバックエンド サービスに対して診断する。
  • ストレージ容量、パフォーマンス、CPU/メモリの問題を診断する。

前提条件

  • 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 のデプロイされたアプリケーション。

  • カスタム コンテナーをデプロイした場合は、シェル プログラム。 既定値は、/bin/sh です。

Azure ロールを割り当てる

アプリ インスタンスに接続する前に、Azure Spring Apps Connect Role ロールが付与されている必要があります。 アプリ インスタンスに接続するには、データ アクションのアクセス許可 Microsoft.AppPlatform/Spring/apps/deployments/connect/action が必要です。

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

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

  1. Azure Portalを開きます。

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

  3. 左側のメニューから [アクセス制御 (IAM)] を選択します。

  4. コマンド バーで、[追加] を選択し、[ロールの割り当ての追加] を選択します。

    [ロール割り当ての追加] コマンドが表示された「アクセス制御 (IAM)」ページのスクリーンショット。

  5. 一覧で Azure Spring Apps Connect ロール を検索し、[次へ]を選択します。

    Azure Spring Apps Connect ロールを示す「ロールの割り当ての追加」ページのスクリーンショット。

  6. [メンバーの選択] を選び、自分のユーザー名を検索して選んでください。

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

アプリ インスタンスに接続する

アプリ インスタンスには、Azure portal または Azure CLI を使用して接続できます。

Azure portal を使用してアプリ インスタンスに接続するには、次の手順に従います。

  1. Azure Portalを開きます。

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

  3. メニューの左側から [アプリ] を選択し、いずれかのアプリを選択します。

  4. 左側のメニューから [コンソール] を選択します。

  5. アプリケーション インスタンスを選びます。

    アプリ インスタンスを示す「Azure portal コンソール」ページのスクリーンショット。

  6. コンテナーで実行するシェルを選択または入力します。

    カスタム シェル エントリを示す「Azure portal コンソール」ページのスクリーンショット。

  7. [接続] を選択します。

    [接続] コマンドを示す「Azure portal コンソール」ページのスクリーンショット。

アプリ インスタンスのトラブルシューティング

アプリ インスタンスに接続したら、ヒープ メモリの状態を確認できます。

次のコマンドを使用して、Java プロセス ID (通常は 1) を見つけます。

jps

出力は次の例のようになります。

jps コマンドの出力を示すスクリーンショット。

その後、次のコマンドを使用して JDK ツールを実行し、結果を確認します。

jstat -gc 1

出力は次の例のようになります。

jstat コマンドの出力を示すスクリーンショット。

アプリ インスタンスから切断する

トラブルシューティングが完了したら、exit コマンドを使用してアプリ インスタンスから切断するか、Ctrl+d キーを押します。

トラブルシューティング ツール

次の一覧では、トラブルシューティングに使用できるプレインストール済みツールの一部について説明します。

  • lsof - 開いているファイルを一覧表示します。
  • top - システム概要情報と現在の使用率を表示します。
  • ps - 実行中のプロセスのスナップショットを取得します。
  • netstat - ネットワーク接続とインターフェイスの統計情報を出力します。
  • nslookup - インターネット ネーム サーバーに対話形式でクエリを実行します。
  • ping - ネットワーク ホストに到達できるかどうかをテストします。
  • nc - TCP または UDP を使用したネットワーク接続からの読み取りと書き込みをします。
  • wget - ファイルをダウンロードし、REST API と対話できるようにします。
  • df - 空きディスク領域の容量を表示します。

jpsjcmdjstat などの JDK バンドル ツールを使用することもできます。

次の一覧は、使用できるツールを示しています。これは、サービス プランとアプリ展開の種類によって異なります。

  • ソース コード、JAR、成果物の展開:
    • Basic、Standard、Standard 従量課金 & 専用プラン:
      • 共通ツール - はい
      • JDK ツール - はい (Java ワークロードの場合のみ)。
    • Enterprise プラン:
      • 共通ツール - ビルダー で選択した OS スタックによって異なります。 はい (フル OS スタックの場合)。 いいえ (基本 OS スタックの場合)。
      • JDK ツール - はい (Java ワークロードの場合のみ)。
  • カスタム イメージの展開: イメージにインストールされているツール セットによって異なります。

Note

JDK ツールは、ソース コード 展開の種類のパスには含まれません。 JDK コマンドを実行する前に、export PATH="$PATH:/layers/tanzu-buildpacks_microsoft-openjdk/jdk/bin" を実行します。

制限事項

アプリケーション インスタンス内でシェル環境を使用するには、次の制限があります。

  • アプリは非ルート ユーザーとして実行されているため、ルート アクセス許可を必要とする一部のアクションを実行することはできません。 たとえば、システム パッケージ マネージャー apt / yum を使用して新しいツールをインストールすることはできません。

  • 一部の Linux 機能は禁止されているため、tcpdump などの特別な特権を必要とするツールは機能しません。

次のステップ