Azure Arc で App Service アプリを作成する (プレビュー)

このクイックスタートでは、Azure Arc 対応 Kubernetes クラスターに App Serviceアプリを作成します (プレビュー)。 このシナリオでは Linux アプリのみをサポートし、組み込みの言語スタックまたはカスタム コンテナーを使用できます。

前提条件

Azure CLI の拡張機能を追加する

Azure Cloud Shell で Bash 環境を起動します。

新しいウィンドウで Cloud Shell を起動する

これらの CLI コマンドはまだコア CLI セットに含まれていないため、次のコマンドを使用して追加します。

az extension add --upgrade --yes --name customlocation
az extension remove --name appservice-kube
az extension add --yes --source "https://aka.ms/appsvc/appservice_kube-latest-py2.py3-none-any.whl"

1. リソース グループを作成する

次のコマンドを実行します。

az group create --name myResourceGroup --location eastus 

2. カスタムの場所を取得する

クラスター管理者から、カスタムの場所に関する次の情報を取得します (カスタムの場所の作成に関するページを参照してください)。

customLocationGroup="<resource-group-containing-custom-location>"
customLocationName=<name-of-custom-location>

次の手順用にカスタムの場所の ID を取得します。

customLocationId=$(az customlocation show \
    --resource-group $customLocationGroup \
    --name $customLocationName \
    --query id \
    --output tsv)

3. アプリを作成する

次の例では Node.js アプリを作成します。 <app-name> をクラスター内で一意の名前で置き換えます (有効な文字は、a-z0-9、および - です)。 サポートされているすべてのランタイムを確認するには、az webapp list-runtimes --linux を実行します。

 az webapp create \
    --resource-group myResourceGroup \
    --name <app-name> \
    --custom-location $customLocationId \
    --runtime 'NODE|12-lts'

4. コードをデプロイする

注意

az webapp up は、パブリック プレビュー期間中はサポートされていません。

Git を使用してサンプルの Node.js アプリを取得し、ZIP デプロイを使用してデプロイします。 <app-name> は、Web アプリの名前に置き換えます。

git clone https://github.com/Azure-Samples/nodejs-docs-hello-world
cd nodejs-docs-hello-world
zip -r package.zip .
az webapp deployment source config-zip --resource-group myResourceGroup --name <app-name> --src package.zip

5. Log Analytics を使用して診断ログを取得する

注意

Log Analytics を使用するには、App Service 拡張機能 をインストールするときに有効にしておく必要があります。 Log Analytics なしで拡張機能をインストールした場合は、この手順をスキップします。

App Service 拡張機能で構成されている Log Analytics ワークスペースに移動し、左側のナビゲーションで [ログ] をクリックします。 次のサンプル クエリを実行して、過去 72 時間のログを表示します。 <app-name> は、Web アプリの名前に置き換えます。

let StartTime = ago(72h);
let EndTime = now();
AppServiceConsoleLogs_CL
| where TimeGenerated between (StartTime .. EndTime)
| where AppName_s =~ "<app-name>"

Kubernetes クラスターでホストされているすべてのアプリのアプリケーション ログは、Log Analytics ワークスペースで AppServiceConsoleLogs_CL という名前のカスタム ログ テーブルに記録されます。

Log_s には特定の App Service のアプリケーション ログが含まれており、AppName_s には App Service のアプリ名が含まれています。 Log_s 列には、アプリケーション コードを使用して書き込むログに加えて、コンテナーの起動、シャットダウン、および関数アプリのログも含まれています。

ログ クエリの詳細については、Kusto の概要に関する記事を参照してください。

(省略可能) カスタム コンテナーをデプロイする

カスタム コンテナー アプリを作成するには、--deployment-container-image-name を指定して az webapp create を実行します。 プライベート リポジトリの場合、--docker-registry-server-user--docker-registry-server-password を追加します。

たとえば、次の操作を試してください。

az webapp create 
    --resource-group myResourceGroup \
    --name <app-name> \
    --custom-location $customLocationId \
    --deployment-container-image-name mcr.microsoft.com/appsvc/node:12-lts

アプリの作成後にイメージを更新する方法については、「カスタム コンテナーの Docker イメージを変更する」を参照してください

次の手順