チュートリアル: Azure Arc 対応 Kubernetes で Azure コンテナー アプリを作成する (プレビュー)
このチュートリアルでは、Azure Arc 対応 Kubernetes クラスターにコンテナー アプリ (プレビュー) を作成し、以下について学習します。
- Azure Arc でコンテナー アプリを作成する
- アプリケーションの診断を表示する
前提条件
コンテナー アプリの作成に進む前に、まず、Azure Container Apps を実行するための Azure Arc 対応 Kubernetes クラスターを設定する必要があります。
Azure CLI の拡張機能を追加する
Azure Cloud Shell で Bash 環境を起動します。
次に、必要な Azure CLI 拡張機能を追加します。
警告
次のコマンドは、パブリック クラウド サービスでは使用できないカスタム Container Apps 拡張機能をインストールします。 Azure パブリック クラウドに切り替える場合は、この拡張機能をアンインストールする必要があります。
az extension add --upgrade --yes --name customlocation
az extension add --name containerapp --upgrade --yes
リソース グループを作成する
このチュートリアルで作成するサービスのリソース グループを作成します。
GROUP_NAME="my-container-apps-resource-group"
az group create --name $GROUP_NAME --location eastus
カスタムの場所情報を取得する
クラスター管理者から、次の場所グループ、名前、ID を取得します。 詳細については、「カスタムの場所を作成する」を参照してください。
CUSTOM_LOCATION_GROUP="<RESOURCE_GROUP_CONTAINING_CUSTOM_LOCATION>"
CUSTOM_LOCATION_NAME="<NAME_OF_CUSTOM_LOCATION>"
カスタムの場所 ID を取得します。
CUSTOM_LOCATION_ID=$(az customlocation show \
--resource-group $CUSTOM_LOCATION_GROUP \
--name $CUSTOM_LOCATION_NAME \
--query id \
--output tsv)
接続されている環境 ID を取得する
カスタムの場所 ID を取得したので、接続されている環境のクエリを実行できます。
接続されている環境は、標準の Container Apps 環境とおおむね同じですが、ネットワークの制限は、基になる Arc 対応 Kubernetes クラスターによって制御されます。
CONTAINER_APP_NAME="my-container-app"
CONNECTED_ENVIRONMENT_ID=$(az containerapp connected-env list --custom-location $CUSTOM_LOCATION_ID -o tsv --query '[].id')
アプリの作成
次の例では Node.js アプリを作成します。
az containerapp create \
--resource-group $GROUP_NAME \
--name $CONTAINER_APP_NAME \
--environment $CONNECTED_ENVIRONMENT_ID \
--environment-type connected \
--image mcr.microsoft.com/k8se/quickstart:latest \
--target-port 80 \
--ingress external
az containerapp browse --resource-group $GROUP_NAME --name $CONTAINER_APP_NAME
Log Analytics を使用して診断ログを取得する
Note
診断情報を表示するために Container Apps 拡張機能をインストールしたため、Log Analytics の構成が必要です。 Log Analytics なしで拡張機能をインストールした場合は、この手順をスキップします。
App Service 拡張機能が構成されている Log Analytics ワークスペースに移動し、左側のナビゲーションで [ログ] を選択します。
次のサンプル クエリを実行して、過去 72 時間のログを表示します。
クエリの実行時にエラーが発生した場合は、10 から 15 分後に再試行してください。 Log Analytics がアプリケーションからログの受信を開始するまでに遅延が発生する場合があります。
let StartTime = ago(72h);
let EndTime = now();
ContainerAppConsoleLogs_CL
| where TimeGenerated between (StartTime .. EndTime)
| where ContainerAppName_s =~ "my-container-app"
Kubernetes クラスターでホストされているすべてのアプリのアプリケーション ログは、Log Analytics ワークスペースで ContainerAppConsoleLogs_CL
という名前のカスタム ログ テーブルに記録されます。
- Log_s には、特定の Container Apps 拡張機能のアプリケーション ログが含まれています。
- AppName_s には、コンテナー アプリ アプリ名が含まれています。 Log_s 列には、アプリケーション コードを使用して書き込むログに加えて、コンテナーの起動とシャットダウンのログも含まれています。
ログ クエリの詳細については、Kusto の概要に関する記事を参照してください。