演習 - 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 アプリのスプラッシュ ページが表示されます。

ウェルカム ページのスクリーンショット。

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 によって初めてアプリが初期化されるため、このページの読み込みにはしばらく時間がかかります。

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

ウェルカム ページのスクリーンショット。

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 コード ブロックのすぐ上に "You can launch the app at..." (... でアプリを起動できます) という行が URL 付きで表示されます。 そのリンクを選択して、新しいブラウザー タブでアプリを開きます。アプリが App Service によって初めて初期化されるため、ページの読み込みに時間がかかることがあります。

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

Python のようこそページに Hello Best Bike App が表示されているスクリーンショット