Azure Container Apps でコンテナー デバッグ コンソールに接続する
Azure Container Apps プラットフォームには、次の状況でアプリケーションをトラブルシューティングするのに役立つデバッグ コンソールが用意されています。
- アプリケーションとランタイム依存関係のみを含むコンテナー、または "ディストリビューションレス" イメージを使用している場合に、ターゲット コンテナーに接続できない場合。
- ネットワークの問題が発生したとき、イメージにはその問題を調査するためのデバッグ ユーティリティが含まれていない場合。
Azure CLI を使用してデバッグ コンソールに接続できます。
Note
デバッグ コンソールは別のコンテナーを作成し、基となるリソースをアプリが実行されているコンテナーと共有します。 デバッグ コンテナーが既に存在する場合、デバッグ コンソールは新しいコンテナーを作成せずに既存のコンテナーを再利用します。 コンテナー アプリ レプリカごとに実行されるデバッグ コンテナーは最大で 1 つです。 デバッグ コンテナーを実行し続ける必要がない場合は、デバッグ コンソール セッションで「exit」と入力するか、Ctrl/Cmd + D キーを使用します。
Azure CLI
コンテナーのデバッグ コンソールに接続するには、az containerapp debug
コマンドを使用します。 コンソールを終了するには、「exit」と入力するか、Ctrl/Cmd + D キーを使用します。
たとえば、単一コンテナーでコンテナー アプリのコンテナー デバッグ コンソールに接続するには、次のコマンドを使用します。 このコマンドを実行する前に、<PLACEHOLDERS>
をコンテナー アプリの値に置き換えます。
az containerapp debug \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP>
複数のリビジョン、レプリカ、コンテナーを持つコンテナー アプリのコンテナー デバッグ コンソールに接続するには、az containerapp debug
コマンドに次のパラメーターを含めます。
引数 | 説明 |
---|---|
--revision |
デバッグするコンテナーのリビジョン名。 |
--replica |
デバッグするコンテナーのレプリカ名。 |
--container |
デバッグするコンテナーのコンテナー名。 |
リビジョン名は、az containerapp revision list
コマンドを使って取得できます。 このコマンドを実行する前に、<PLACEHOLDERS>
をコンテナー アプリの値に置き換えます。
az containerapp revision list \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--query "[].name"
レプリカとコンテナーの名前を取得するには、az containerapp replica list
コマンドを使います。 このコマンドを実行する前に、<PLACEHOLDERS>
をコンテナー アプリの値に置き換えます。
az containerapp replica list \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--revision <REVISION_NAME> \
--query "[].{Containers:properties.containers[].name, Name:name}"
az containerapp debug
コマンドを使用してコンテナー デバッグ コンソールに接続します。 このコマンドを実行する前に、<PLACEHOLDERS>
をコンテナー アプリの値に置き換えます。
az containerapp debug \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--revision <REVISION_NAME> \
--replica <REPLICA_NAME> \
--container <CONTAINER_NAME>
デバッグ コンソールの組み込みツール
デバッグ コンソールには、問題のトラブルシューティングに役立つ以下の診断ツールがプレインストールされています。
- ip-utils
- net-tools
- procps
- lsof
- util-linux
- nc
- wget
- openssl
- traceroute
- ca-certificates
- bind-utils
- tcpping
他のツールをインストールする場合は、tdnf install -y <TOOL_NAME>
コマンドを実行します。 このコマンドを実行する前に、<PLACEHOLDERS>
をコンテナー アプリの値に置き換えます。
たとえば、次のコマンドを使用してデバッグ コンソールに JDK をインストールします。
tdnf install -y msopenjdk-17
シナリオ - デバッグ コンソール経由でコンテナーのファイル システムにアクセスする
既定では、デバッグ コンソールはルート ユーザーとして実行されます。
コンテナーがルート ユーザーとして実行されている場合は、/proc/1
にアクセスしてコンテナーのファイル システムにアクセスできます。 コンテナーがルート ユーザーとして実行されていない場合は、/proc/1
のディレクトリにアクセスする前に、以下のコマンドを実行してユーザーを切り替えないと、アクセス許可が拒否されたというエラーが発生します。
switch-user