次の方法で共有


Azure での Python Container Apps の概要

この記事では、Web アプリケーションなどの Python プロジェクトを取得し、それを Docker コンテナーとして Azure にデプロイする方法について説明します。 一般的なコンテナー化ワークフロー、コンテナーの Azure デプロイ オプション、Azure 内の Python 固有のコンテナー構成について説明します。 Azure での Docker コンテナーのビルドとデプロイは、Dockerfile での Python 固有の構成、requirements.txt、 DjangoFlaskFastAPI などの Web フレームワークの設定を使用して、言語をまたがる標準的なプロセスに従います。

コンテナー ワークフローのシナリオ

Python コンテナーの開発では、コードからコンテナーに移動するための一般的なワークフローをいくつか次の表で説明します。

シナリオ 説明 ワークフロー
Dev 開発環境で Python Docker イメージをローカルにビルドします。 コード: Git を使用してアプリ コードをローカルに複製します (Docker がインストールされています)。

ビルド: Docker CLI、VS Code (拡張機能付き)、PyCharm (Docker プラグインを使用) を使用します。 「Python Docker イメージとコンテナーの操作」セクションで説明します。

テスト: コンテナーをローカルで実行してテストします。

プッシュ: Azure Container Registry、Docker Hub、プライベート レジストリなどのコンテナー レジストリにイメージをプッシュします。

デプロイ: レジストリから Azure サービスにコンテナーをデプロイします。
ハイブリッド Azure で Docker イメージをビルドしますが、ローカル環境からプロセスを開始します。 コード: コードをローカルに複製します (Docker をインストールする必要はありません)。

ビルド: Azure でビルドをトリガーするには、VS Code (リモート拡張機能付き) または Azure CLI を使用します。

プッシュ: ビルドされたイメージを Azure Container Registry にプッシュします。

デプロイ: レジストリから Azure サービスにコンテナーをデプロイします。
紺碧 Azure Cloud Shell を使用して、コンテナーを完全にクラウドに構築してデプロイします。 コード: Azure Cloud Shell で GitHub リポジトリを複製します。

ビルド: Cloud Shell で Azure CLI または Docker CLI を使用します。

プッシュ: Azure Container Registry、Docker Hub、プライベート レジストリなどのレジストリにイメージをプッシュします。

デプロイ: レジストリから Azure サービスにコンテナーをデプロイします。

これらのワークフローの最終目標は、次のセクションに示すように、Docker コンテナーをサポートする Azure リソースのいずれかでコンテナーを実行することです。

開発環境は次のようになります。

  • Visual Studio Code または PyCharm を使用したローカル ワークステーション
  • Codespaces (クラウドでホストされている開発環境)
  • Visual Studio Dev Containers (開発環境としてのコンテナー)

Azure でのデプロイ コンテナー オプション

Python コンテナー アプリは、次のサービスでサポートされています。

サービス 説明
コンテナ用ウェブアプリ Azure App Service は、Web サイトや Web API など、コンテナー化された Web アプリケーション用のフル マネージド ホスティング プラットフォームです。 スケーラブルなデプロイをサポートし、Docker Hub、Azure Container Registry、GitHub を使用して CI/CD ワークフローとシームレスに統合します。 このサービスは、コンテナー化されたアプリをデプロイするためのシンプルで効率的なパスを必要とする開発者に最適ですが、Azure App Service プラットフォームの完全な機能も利用できます。 アプリケーションとそのすべての依存関係を 1 つのデプロイ可能なコンテナーにパッケージ化することで、インフラストラクチャを管理することなく、移植性と管理の容易さの両方を実現できます。

例: Azure App Service に Flask または FastPI Web アプリをデプロイします。
Azure Container Apps (ACA) Azure Container Apps (ACA) は、Kubernetes と 、DaprKEDAenvoy などのオープンソース テクノロジを利用した、フル マネージドのサーバーレス コンテナー サービスです。 その設計には業界のベスト プラクティスが組み込まれており、汎用コンテナーの実行に最適化されています。 ACA は、Kubernetes インフラストラクチャの管理の複雑さを抽象化します。Kubernetes API への直接アクセスは必要ありません。また、サポートもされていません。 代わりに、リビジョン、スケーリング、証明書、環境などの上位レベルのアプリケーションコンストラクトを提供し、開発とデプロイのワークフローを簡略化します。 このサービスは、最小限の運用オーバーヘッドでコンテナー化されたマイクロサービスを構築してデプロイしようとしている開発チームに最適です。これにより、インフラストラクチャ管理ではなくアプリケーション ロジックに集中できます

例: Azure Container Apps に Flask または FastPI Web アプリをデプロイします
Azure Container Instances (ACI) Azure Container Instances (ACI) は、Hyper-V 分離されたコンテナーの 1 つのポッドをオンデマンドで提供するサーバーレス オファリングです。 課金は、事前に割り当てられたインフラストラクチャではなく実際のリソース消費量に基づいているため、有効期間が短いワークロードやバースト可能なワークロードに適しています。 他のコンテナー サービスとは異なり、ACI には、スケーリング、負荷分散、TLS 証明書などの概念に対する組み込みのサポートは含まれていません。 代わりに、通常は基本的なコンテナーの構成要素として機能し、多くの場合、オーケストレーションのために Azure Kubernetes Service (AKS) などの Azure サービスと統合されます。 ACI は、Azure Container Apps の上位レベルの抽象化と機能が不要な場合に、軽量の選択肢として優れています

例: Azure Container Instances へのデプロイ用のコンテナー イメージを作成します。 (このチュートリアルは Python 固有ではありませんが、表示される概念はすべての言語に適用されます)。
Azure Kubernetes Service (AKS) Azure Kubernetes Service (AKS) は、Kubernetes 環境を完全に制御できる Azure のフル マネージド Kubernetes オプションです。 Kubernetes API への直接アクセスをサポートし、任意の標準 Kubernetes ワークロードを実行できます。 クラスター全体がサブスクリプション内に存在し、クラスターの構成と運用はユーザーの制御と責任の範囲内となります。 ACI は、フル マネージドのコンテナー ソリューションを求めるチームに最適ですが、AKS では Kubernetes クラスターを完全に制御でき、構成、ネットワーク、スケーリング、操作を管理する必要があります。 Azure はコントロール プレーンとインフラストラクチャのプロビジョニングを処理しますが、クラスターの日常の運用とセキュリティはチームの制御下にあります。 このサービスは、クラスター環境に対する完全な所有権を維持しながら、Azure のマネージド インフラストラクチャの利点を追加した Kubernetes の柔軟性と能力を必要とするチームに最適です。

例: Azure CLI を使用して Azure Kubernetes Service クラスターをデプロイします
Azure 関数 Azure Functions には、イベントドリブンのサーバーレスサービスとしての Functions (FaaS) プラットフォームが用意されています。これにより、インフラストラクチャを管理することなく、イベントに応答して小さなコード (関数) を実行できます。 Azure Functions は、イベントとのスケールと統合に関して Azure Container Apps と多くの特性を共有しますが、コードまたはコンテナーとしてデプロイされる有効期間の短い関数用に最適化されています。 イベントに対する関数の実行をトリガーしようとしているチームの場合は〘。たとえば、他のデータ ソースにバインドする場合などです。 Azure Container Apps と同様に、Azure Functions では、イベント ソース (HTTP 要求、メッセージ キュー、BLOB ストレージの更新など) との自動スケーリングと統合がサポートされています。 このサービスは、Python やその他の言語で、ファイルのアップロードの処理やデータベースの変更への応答など、イベントによってトリガーされる軽量のワークフローを構築するチームに最適です。

例: カスタム コンテナーを使用して Linux で関数を作成する

これらのサービスの詳細な比較については、「 Container Apps と他の Azure コンテナー オプションの比較」を参照してください。

仮想環境とコンテナー

Python の仮想環境では、プロジェクトの依存関係がシステム レベルの Python インストールから分離され、開発環境間の一貫性が確保されます。 仮想環境には、独自の分離された Python インタープリターと、その環境内で特定のプロジェクト コードを実行するために必要なライブラリとスクリプトが含まれています。 Python プロジェクトの依存関係は、 requirements.txt ファイルを通じて管理されます。 requirements.txt ファイルで依存関係を指定することで、開発者はプロジェクトに必要な環境を正確に再現できます。 このアプローチにより、Azure App Service などのコンテナー化されたデプロイへのスムーズな移行が容易になります。この場合、信頼性の高いアプリケーションパフォーマンスには環境の一貫性が不可欠です。

ヒント

コンテナー化された Python プロジェクトでは、Docker コンテナーが独自の Python インタープリターと依存関係を備えた分離環境を提供するため、通常、仮想環境は不要です。 ただし、ローカルの開発やテストには仮想環境を使用できます。 Docker イメージを無駄にしないようにするには、 .dockerignore ファイルを使用して仮想環境を除外します。これにより、不要なファイルをイメージにコピーできなくなります。

Docker コンテナーは、Python 仮想環境と同様の機能を提供する機能と考えることができますが、再現性、分離性、移植性に関するより広範な利点があります。 仮想環境とは異なり、Docker コンテナーは、コンテナー ランタイムが使用可能な限り、異なるオペレーティング システムと環境間で一貫して実行できます。

Docker コンテナーには、Python プロジェクト コードと、依存関係、環境設定、システム ライブラリなど、実行する必要があるすべてのものが含まれます。 コンテナーを作成するには、まずプロジェクトコードと構成から Docker イメージをビルドしてから、そのイメージの実行可能なインスタンスであるコンテナーを開始します。

Python プロジェクトをコンテナー化する場合、次の表にキー ファイルについて説明します。

プロジェクト ファイル 説明
requirements.txt このファイルには、アプリケーションに必要な Python 依存関係の明確な一覧が含まれています。 Docker では、イメージのビルド プロセス中にこの一覧を使用して、必要なすべてのパッケージをインストールします。 これにより、開発環境とデプロイ環境の間の一貫性が確保されます。
Dockerfile このファイルには、基本イメージの選択、依存関係のインストール、コード コピー、コンテナーの起動コマンドなど、Python Docker イメージを構築するための手順が含まれています。 アプリケーションの完全な実行環境が定義されます。 詳細については、 Python の Dockerfile の手順に関するセクションを参照してください。
.dockerignore このファイルは、Dockerfile の COPY コマンドを使用して Docker イメージにコンテンツをコピーするときに除外する必要があるファイルとディレクトリを指定します。 このファイルでは、除外を定義するために .gitignore のようなパターンが使用されます。 .dockerignore ファイルでは、.gitignore ファイルと同様の除外パターンがサポートされています。 詳細については、 .dockerignore ファイルを参照してください。

ファイルを除外すると、イメージのビルドパフォーマンスが向上しますが、検査できる画像に機密情報を追加しないようにするためにも使用する必要があります。 たとえば、 .dockerignore には、 .env.venv (仮想環境) を無視する行が含まれている必要があります。

Web フレームワークのコンテナー設定

通常、Web フレームワークは既定のポート (Flask の場合は 5000、FastAPI の場合は 8000 など) にバインドされます。 Azure Container Instances、Azure Kubernetes Service (AKS)、App Service for Containers などの Azure サービスにコンテナーをデプロイする場合は、受信トラフィックの適切なルーティングを確保するために、コンテナーのリッスン ポートを明示的に公開して構成することが重要です。 適切なポートを構成することで、Azure のインフラストラクチャがコンテナー内の正しいエンドポイントに要求を送信できるようになります。

Web フレームワーク 港 / ポート
Django 8,000
フラスコ 5000 または 5002
FastAPI (uvicorn) 8000 または 80

次の表は、さまざまな Azure コンテナー ソリューションのポートを設定する方法を示しています。

Azure コンテナー ソリューション Web アプリのポートを設定する方法
コンテナ向けWebアプリケーション 既定では、App Service はカスタム コンテナーがポート 80 またはポート 8080 でリッスンしていることを前提としています。 コンテナーが別のポートをリッスンしている場合は、App Service アプリで WEBSITES_PORT アプリ設定を指定します。 詳細については、「 Azure App Service のカスタム コンテナーを構成する」を参照してください。
Azure Containers Apps Azure Container Apps を使用すると、イングレスを有効にすることで、コンテナー アプリをパブリック Web、仮想ネットワーク、または同じ環境内の他のコンテナー アプリに公開できます。 受信 targetPort を、コンテナーが受信要求をリッスンするポートに設定します。 アプリケーションイングレス エンドポイントは常にポート 443 で公開されます。 詳細については、「 Azure Container Apps で HTTPS または TCP イングレスを設定する」を参照してください。
Azure Container Instances、Azure Kubernetes コンテナーまたはポッドの作成時にアプリがリッスンするポートを定義します。 コンテナー イメージには、Web フレームワーク、アプリケーション サーバー (gunicorn、uvicorn など)、必要に応じて Web サーバー (nginx など) を含める必要があります。 より複雑なシナリオでは、アプリケーション サーバー用と Web サーバー用の 2 つのコンテナーに責任を分割できます。 その場合、Web サーバー コンテナーは通常、外部トラフィック用のポート 80 または 443 を公開します。

Python Dockerfile

Dockerfile は、Python アプリケーション用の Docker イメージを構築するための手順を含むテキスト ファイルです。 最初の命令では、通常、開始元の基本イメージを指定します。 その後の手順では、必要なソフトウェアのインストール、アプリケーション ファイルのコピー、実行可能なイメージを作成するための環境の構成などのアクションについて詳しく説明します。 次の表に、一般的に使用される Dockerfile 命令の Python 固有の例を示します。

指示 目的
差出人 後続の手順の基本イメージを設定します。 FROM python:3.8-slim
晒す コンテナーが実行時に指定されたポートをリッスンすることを Docker に通知します。 EXPOSE 5000
コピー 指定したソースからファイルまたはディレクトリをコピーし、指定した宛先パスにあるコンテナーのファイル システムに追加します。 COPY . /app
走る Docker イメージ内でコマンドを実行します。 たとえば、依存関係をプルします。 コマンドはビルド時に 1 回実行されます。 RUN python -m pip install -r requirements.txt
CMD このコマンドは、コンテナーを実行するための既定値を提供します。 CMD 命令は 1 つだけです。 CMD ["gunicorn", "--bind", "0.0.0.0:5000", "wsgi:app"]

Docker ビルド コマンドは、Dockerfile とコンテキストから Docker イメージをビルドします。 ビルドのコンテキストは、指定されたパスまたは URL にあるファイルのセットです。 通常、Python プロジェクトのルートからイメージをビルドし、次の例に示すように、ビルド コマンドのパスは "." です。

docker build --rm --pull  --file "Dockerfile"  --tag "mywebapp:latest"  .

ビルド プロセスは、コンテキスト内の任意のファイルを参照できます。 たとえば、ビルドでは COPY 命令を使用して、コンテキスト内のファイルを参照できます。 Flask フレームワークを使用した Python プロジェクトの Dockerfile の例を次に示します。

FROM python:3.8-slim

EXPOSE 5000

# Keeps Python from generating .pyc files in the container.
ENV PYTHONDONTWRITEBYTECODE=1

# Turns off buffering for easier container logging
ENV PYTHONUNBUFFERED=1

# Install pip requirements.
COPY requirements.txt .
RUN python -m pip install -r requirements.txt

WORKDIR /app
COPY . /app

# Creates a non-root user with an explicit UID and adds permission to access the /app folder.
RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
USER appuser

# Provides defaults for an executing container; can be overridden with Docker CLI.
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "wsgi:app"]

Dockerfile は手動で作成することも、VS Code と Docker 拡張機能を使用して自動的に作成することもできます。 詳細については、「 Docker ファイルの生成」を参照してください。

Docker ビルド コマンドは、Docker CLI の一部です。 VS Code や PyCharm などの IDE を使用すると、Docker イメージを操作するための UI コマンドによってビルド コマンドが呼び出され、オプションの指定が自動化されます。

Python Docker イメージとコンテナーの操作

VS Code と PyCharm

Visual Studio Code (VS Code) や PyCharm などの統合開発環境 (IDE) は、Docker タスクをワークフローに統合することで Python コンテナー開発を効率化します。 拡張機能またはプラグインを使用すると、これらの IDE によって、Docker イメージの構築、コンテナーの実行、App Service や Container Instances などの Azure サービスへのデプロイが簡略化されます。 VS Code と PyCharm でできることの一部を次に示します。

  • Docker イメージをダウンロードしてビルドします。

    • 開発環境でイメージをビルドします。
    • 開発環境に Docker をインストールせずに、Azure で Docker イメージをビルドします。 (PyCharm の場合は、Azure CLI を使用して Azure でイメージをビルドします)。
  • 既存のイメージ、プルされたイメージ、または Dockerfile から直接 Docker コンテナーを作成して実行します。

  • Docker Compose を使用してマルチコンテナー アプリケーションを実行します。

  • Docker Hub、GitLab、JetBrains Space、Docker V2、その他のセルフホステッド Docker レジストリなどのコンテナー レジストリに接続して操作します。

  • (VS Code のみ)Python プロジェクト用に調整された Dockerfile ファイルと Docker Compose ファイルを追加します。

開発環境で Docker コンテナーを実行するように VS Code と PyCharm を設定するには、次の手順を使用します。

まだインストールしていない場合は、 Azure Tools for VS Code をインストールします。

インストラクション スクリーンショット
手順 1: Shift + ALT + A を使用して Azure 拡張機能を開き、 Azure に接続していることを確認します。

VS Code 拡張機能バーの Azure アイコンを選択することもできます。

サインインしていない場合は、[ Azure にサインイン ] を選択し、画面の指示に従います。

Azure サブスクリプションへのアクセスに問題がある場合は、プロキシの背後にいる可能性があります。 接続の問題を解決するには、 Visual Studio Code の「ネットワーク接続」を参照してください。
サインインすると Azure Tools がどのように表示されるかを示すスクリーンショット。 サインインしていない場合の Azure Tools の外観を示すスクリーンショット。
手順 2: Ctrl + SHIFT + X使用して拡張機能を開き、Docker 拡張機能を検索して、拡張機能をインストールします。

VS Code 拡張機能バーの [拡張機能 ] アイコンを選択することもできます。
VS Code に Docker 拡張機能を追加する方法を示すスクリーンショット。
手順 3: 拡張機能バーで Docker アイコンを選択し、イメージを展開して、コンテナーとして実行する Docker イメージを右クリックします。 VS Code で Docker 拡張機能を使用して Docker イメージからコンテナーを実行する方法を示すスクリーンショット。
手順 4: ターミナル ウィンドウで Docker の実行出力を監視する。 VS Code でコンテナーを実行する例を示すスクリーンショット。

Azure CLI と Docker CLI

Azure CLI と Docker CLI を使用して、Python Docker イメージとコンテナーを操作することもできます。 VS Code と PyCharm の両方に、これらの CLI を実行できるターミナルがあります。

ビルドと実行の引数を細かく制御し、自動化を行う場合は、CLI を使用します。 たとえば、次のコマンドは、Azure CLI az acr build を使用して Docker イメージ名を指定する方法を示しています。

az acr build --registry <registry-name> \
  --resource-group <resource-group> \
  --target pythoncontainerwebapp:latest .

別の例として、Docker CLI の実行 コマンドの使用方法を示す次のコマンドを考えてみましょう。 この例では、コンテナーの外部にある開発環境の MongoDB インスタンスと通信する Docker コンテナーを実行する方法を示します。 コマンド ラインで指定すると、コマンドを完了するためのさまざまな値を簡単に自動化できます。

docker run --rm -it \
  --publish <port>:<port> --publish 27017:27017 \
  --add-host mongoservice:<your-server-IP-address> \
  --env CONNECTION_STRING=mongodb://mongoservice:27017 \
  --env DB_NAME=<database-name> \
  --env COLLECTION_NAME=<collection-name> \
  containermongo:latest  

このシナリオの詳細については、「 コンテナー化された Python Web アプリをローカルでビルドしてテストする」を参照してください。

コンテナー内の環境変数

Python プロジェクトでは、通常、環境変数を使用して構成データをアプリケーション コードに渡します。 このアプローチにより、さまざまな環境での柔軟性が向上します。 たとえば、データベース接続の詳細を環境変数に格納できるため、コードを変更することなく、開発、テスト、運用の各データベースを簡単に切り替えることができます。 このように構成をコードから分離することで、よりクリーンなデプロイが促進され、セキュリティと保守容易性が向上します。

python-dotenv のようなパッケージは、多くの場合、.env ファイルからキーと値のペアを読み取り、環境変数として設定するために使用されます。 .env ファイルは、仮想環境で実行する場合に便利ですが、コンテナーを操作する場合は推奨されません。 特に機密情報が含まれており、コンテナーが公開される場合は、 .env ファイルを Docker イメージにコピーしないでください。 .dockerignore ファイルを使用して、Docker イメージへのファイルのコピーを除外します。 詳細については、この記事の 「仮想環境とコンテナー 」セクションを参照してください。

環境変数は、いくつかの方法でコンテナーに渡すことができます。

  1. DOCKERfile で ENV 命令として定義されます。
  2. Docker ビルド コマンドを使用して--build-arg引数として渡されます。
  3. Docker ビルド コマンドと BuildKit バックエンドを使用して、--secret引数として渡されます。
  4. Docker run コマンドを使用して、--envまたは--env-file引数として渡されます。

最初の 2 つのオプションには 、.env ファイルで説明したのと同じ欠点があります。つまり、潜在的に機密情報を Docker イメージにハードコーディングしています。 Docker イメージを検査し、環境変数を確認できます 。たとえば、 docker イメージ検査コマンドを使用します。

BuildKit の 3 番目のオプションでは、最終的に最終的なイメージに格納されない安全な方法で Docker イメージをビルドするために Dockerfile で使用されるシークレット情報を渡すことができます。

Docker run コマンドを使用して環境変数を渡す 4 番目のオプションは、Docker イメージに変数が含まれていないことを意味します。 ただし、変数は引き続きコンテナー インスタンスの検査中に表示されます (たとえば、 docker コンテナー検査を使用)。 このオプションは、コンテナー インスタンスへのアクセスが制御されている場合、またはテストまたは開発シナリオで許容される場合があります。

Docker CLI run コマンドを使用して環境変数を渡し、 --env 引数を使用する例を次に示します。

# PORT=8000 for Django and 5000 for Flask
export PORT=<port-number>

docker run --rm -it \
  --publish $PORT:$PORT \
  --env CONNECTION_STRING=<connection-info> \
  --env DB_NAME=<database-name> \
  <dockerimagename:tag>

VS Code (Docker 拡張機能) または PyCharm (Docker プラグイン) では、UI ツールを使用すると、標準の Docker CLI コマンド (Docker ビルド、Docker 実行など) をバックグラウンドで実行することで、Docker イメージとコンテナーの管理が簡略化されます。

最後に、Azure にコンテナーをデプロイするときに環境変数を指定することは、開発環境での環境変数の使用とは異なります。 例えば次が挙げられます。

  • Web App for Containers の場合は、App Service の構成中にアプリケーション設定を構成します。 これらの設定は、環境変数としてアプリ コードで使用でき、標準の os.environ パターンを使用してアクセスされます。 必要に応じて、初期デプロイ後に値を変更できます。 詳細については、「 環境変数としてアプリ設定にアクセスする」を参照してください。

  • Azure Container Apps の場合、コンテナー アプリの初期構成中に環境変数を構成します。 その後環境変数を変更すると、コンテナーの リビジョン が作成されます。 さらに、Azure Container Apps を使用すると、アプリケーション レベルでシークレットを定義し、それらを環境変数で参照できます。 詳細については、「Azure Container Apps でシークレットを管理する」を参照してください。

もう 1 つのオプションとして、 Service Connector を使用して、Azure コンピューティング サービスを他のバッキング サービスに接続できます。 このサービスは、コンピューティング サービスと管理プレーン内のターゲット バッキング サービスの間で、ネットワーク設定と接続情報 (環境変数の生成など) を構成します。

コンテナー ログの表示

コンテナー インスタンス ログを表示して、コードからの診断メッセージの出力を確認し、コンテナーのコードの問題のトラブルシューティングを行います。 開発環境でコンテナーを実行するときにログを表示するには、いくつかの方法があります。

  • VS Code と PyCharm のセクションに示すように、 VS Code または PyCharm を使用してコンテナーを実行すると、Docker の実行時に開かれたターミナル ウィンドウにログを表示できます。

  • 対話型フラグ -itで Docker CLI run コマンドを使用している場合は、コマンドの後に出力が表示されます。

  • Docker Desktop では、実行中のコンテナーのログを表示することもできます。

Azure にコンテナーをデプロイすると、コンテナー ログにもアクセスできます。 いくつかの Azure サービスと、Azure portal でコンテナー ログにアクセスする方法を次に示します。

Azure サービス Azure portal でログにアクセスする方法
コンテナ向けWebアプリケーション 問題の診断と解決のリソースに移動してログを表示します。 診断 は、構成を必要とせず、アプリのトラブルシューティングに役立つインテリジェントで対話型のエクスペリエンスです。 ログのリアルタイム ビューについては、 Monitoring - Log ストリームに移動します。 ログ クエリと構成の詳細については、「 監視」の他のリソースを参照してください。
Azure コンテナー アプリ 環境リソースに移動して 問題を診断して解決し、 環境の問題をトラブルシューティングします。 多くの場合、コンテナー ログを表示する必要があります。 コンテナー リソースの [ アプリケーション - プロビジョニング管理] でリビジョンを選択し、そこからシステム ログとコンソール ログを表示できます。 ログ クエリと構成の詳細については、「 監視」のリソースを参照してください。
Azure Container Instances (アジュール コンテナー インスタンス) コンテナー リソースに移動し、[ログ] を選択します

これらのサービスについては、ログにアクセスするための Azure CLI コマンドを次に示します。

Azure サービス ログにアクセスするための Azure CLI コマンド
コンテナ向けWebアプリケーション az webapp log
Azure コンテナー アプリ az containerapps logs
Azure Container Instances (アジュール コンテナー インスタンス) az container logs

VS Code でのログの表示もサポートされています。 Azure Tools for VS Code がインストールされている必要があります。 VS Code で Web Apps for Containers (App Service) ログを表示する例を次に示します。

VS Code for Web Apps for Containers でログを表示する方法を示すスクリーンショット。

次のステップ