演習 - App Service にコードをデプロイする

完了

このユニットでは、App Service に Web アプリケーションをデプロイします。

ZIP デプロイを使用したデプロイ

ZIP デプロイを使って .NET アプリケーションをデプロイしましょう。

最初に、dotnet publish を使用して最終的なアプリ ファイルをビルドし、zip でそれを zip ファイルにパッケージ化します。

cd ~/BestBikeApp
dotnet publish -o pub
cd pub
zip -r site.zip *

最後に、az webapp deployment source config-zip でデプロイを実行します。 次のコマンドの <your-app-name> を Azure Web アプリの名前に置き換えて実行します。

az webapp deployment source config-zip \
    --src site.zip \
    --resource-group <rgn>[sandbox resource group name]</rgn> \
    --name <your-app-name>

デプロイには数分かかります。その間は、ステータスが出力されます。 202 という状態コードは、デプロイが成功したことを意味します。

デプロイを検証する

アプリケーションを参照してみましょう。 プレースホルダー ページを含んだ、ブラウザーを開くタブに戻り、更新します。 プレースホルダー ページが再び表示された場合は、App Service インスタンスがまだ完全に再起動していないので、しばらく待ってからもう一度やり直してください。 アプリの再起動後に更新すると、新しい ASP.NET Core Web アプリのスプラッシュ ページが表示されます。

Screenshot of welcome page.

App Service に新しい ASP.NET Core アプリケーションを正常にホストできました。

デプロイ認証情報を構成する

ここで使用するものも含め、一部の App Service デプロイ手法では、Azure 資格情報とは別のユーザー名とパスワードが必要です。 すべての Web アプリは、その独自のユーザー名とパスワードで事前に構成されています。これらのユーザー名とパスワードは、新しいランダムな値にリセットできますが、選択した値に変更することはできません。

アプリごとにこれらのランダムな値を検索するのではなく、ユーザー デプロイ資格情報と呼ばれる App Service 機能を使用して、独自のユーザー名とパスワードを作成できます。 選択した値は、将来作成する新しい Web アプリを含む、アクセス許可のあるすべての App Service Web アプリ上のデプロイで機能します。 選択したユーザー名とパスワードは、ご自分の Azure 資格情報に関連付けられ、個人使用するものなので、他のユーザーと共有しないでください。 ユーザー名とパスワードは両方とも、いつでも変更できます。

デプロイ資格情報を作成する最も簡単な方法としては、Azure CLI を使用します。

  1. Cloud Shell で次のコマンドを実行し、<username><password> を、選択した値に置き換えてデプロイ資格情報を設定します。

    az webapp deployment user set --user-name <username> --password <password>
    

WAR デプロイを使って Java アプリケーション パッケージをデプロイする

WAR デプロイを使って Java アプリケーションをデプロイしましょう。 WAR デプロイは、すべての App Service Web アプリで使用可能な管理サービス インターフェイスの Kudu REST API の一部であり、HTTP 経由でアクセスできます。 WAR デプロイを使用する最も簡単な方法としては、コマンド ラインから curl HTTP ユーティリティを使用します。

次のコマンドを実行して、WAR デプロイを使って Java Web アプリをデプロイします。 <username> および <password> を、先ほど作成したデプロイ ユーザーのユーザー名とパスワードに置き換えて、Azure portal で作成した Web アプリの名前に <your-app-name> を置き換えます。

cd ~/helloworld/target
curl -v -X POST -u <username>:<password> https://<your-app-name>.scm.azurewebsites.net/api/wardeploy --data-binary @helloworld.war

コマンドの実行が完了したら、新しいブラウザー タブを開き、https://<your-app-name>.azurewebsites.net に移動します。 アプリにあいさつのメッセージが表示されます。 これで正常にデプロイできました。

az webapp up でデプロイする

az webapp up で Node.js アプリケーションをデプロイしてみましょう。 このコマンドを実行すると、アプリケーションがパッケージ化され、App Service インスタンスに送信されて、そこでビルドおよびデプロイされます。

まず、Web アプリのリソースに関する情報を収集する必要があります。 次のコマンドを実行して、アプリ名、リソース グループ名、プラン名、SKU、場所を含むシェル変数を設定します。 これらはそれぞれ、別々の az コマンドを使用して Azure の情報を要求します。これらの値は、既存の Web アプリを対象とするために、az webapp up で必要とされます。

export APPNAME=$(az webapp list --query [0].name --output tsv)
export APPRG=$(az webapp list --query [0].resourceGroup --output tsv)
export APPPLAN=$(az appservice plan list --query [0].name --output tsv)
export APPSKU=$(az appservice plan list --query [0].sku.name --output tsv)
export APPLOCATION=$(az appservice plan list --query [0].location --output tsv)

次に、適切な値で az webapp up を実行します。 このコマンドを実行する前に helloworld ディレクトリにいることを確認します。

az webapp up --name $APPNAME --resource-group $APPRG --plan $APPPLAN --sku $APPSKU --location "$APPLOCATION"

デプロイが適用されるまで数分かかります。 進行状況を状態の出力で確認できます。 202 という状態コードは、デプロイが成功したことを意味します。

デプロイを検証する

アプリケーションを参照してみましょう。 az webapp up の出力の最終行 (JSON コード ブロックの前) にアプリのリンクがあります。 それを選択し、新しいブラウザー タブでそこに移動します。App Service によって初めてアプリが初期化されるため、このページの読み込みにはしばらく時間がかかります。

読み込まれると、アプリにあいさつのメッセージが表示されます。 これで正常にデプロイできました。

Screenshot of welcome page.

az webapp up でデプロイする

az webapp up で Python アプリケーションをデプロイしてみましょう。 このコマンドを実行すると、アプリケーションがパッケージ化され、App Service インスタンスに送信されて、そこでビルドおよびデプロイされます。

まず、Web アプリのリソースに関する情報を収集する必要があります。 これらのコマンドを実行し、アプリの名前、リソース グループ名、プラン名、SKU、場所を含むシェル変数を設定します。 これらは、さまざまな az コマンドを使用して Azure の情報を要求します。既存の Web アプリを対象とするために、az webapp up にはこれらの値が必要です。

export APPNAME=$(az webapp list --query [0].name --output tsv)
export APPRG=$(az webapp list --query [0].resourceGroup --output tsv)
export APPPLAN=$(az appservice plan list --query [0].name --output tsv)
export APPSKU=$(az appservice plan list --query [0].sku.name --output tsv)
export APPLOCATION=$(az appservice plan list --query [0].location --output tsv)

次に、適切な値で az webapp up を実行します。 このコマンドを実行する前に BestBikeApp ディレクトリにいることを確認します。

cd ~/BestBikeApp
az webapp up --name $APPNAME --resource-group $APPRG --plan $APPPLAN --sku $APPSKU --location "$APPLOCATION"

デプロイには数分かかります。その間は、ステータスが出力されます。

デプロイを検証する

アプリケーションを参照してみましょう。 出力では、JSON コード ブロックの直前に URL 付きの行が表示されます。 そのリンクを選択して、新しいブラウザー タブでアプリを開きます。アプリが App Service によって初めて初期化されるため、ページの読み込みに時間がかかることがあります。

プログラムが読み込まれると、アプリにあいさつのメッセージが表示されます。 これで正常にデプロイできました。

Screenshot of Python's welcome page showing Hello Best Bike App!