次の方法で共有


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

Note

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

この記事の適用対象: ✔️ 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 Portal または Azure CLI を使用して、Azure ロールを割り当てることができます。

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

  1. Azure portal を開きます。

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

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

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

    Screenshot of the Access Control(IAM) page showing the Add role assignment command.

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

    Screenshot of the Add role assignment page showing the Azure Spring Apps Connect Role.

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

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

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

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

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

  1. Azure portal を開きます。

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

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

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

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

    Screenshot of the Azure portal Console page showing an app instance.

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

    Screenshot of the Azure portal Console page showing a Custom Shell entry.

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

    Screenshot of the Azure portal Console page showing the Connect command.

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

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

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

jps

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

Screenshot showing the output of the jps command.

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

jstat -gc 1

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

Screenshot showing the output of the jstat command.

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

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

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

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

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

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

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

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

Note

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

制限事項

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

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

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

次のステップ