演習 - デプロイ スロットを使用して Web アプリをデプロイする

完了

2 つのスロットをスワップする準備ができたら、スワップされたスロットに正しい構成を適用してください。

ソーシャル メディア Web アプリのバージョン 2 のテストが完了したとします。 次に、そのバージョンを運用環境にデプロイします。 今後のバージョンのアプリを自動的にスワップすることで、デプロイをさらに効率化したいと考えています。

ここでは、手動で自動的にスワップする方法について説明します。

スロット設定を構成する

Web アプリのバージョン 2 をデプロイする前に、スロット設定を構成します。 ここで構成する設定は、デモ アプリには影響しません。 この演習の目的は、スロットをスワップするときに構成がどのように機能するかを確認することです。

スロット設定を構成するには:

  1. Azure portal の [すべてのリソース ] ビューから、Web アプリの運用スロットの [概要 ] ページに移動します。

  2. デプロイ スロットの [構成 ] ウィンドウに移動します。

  3. [+ 新しいアプリケーション設定] を選択します。 ENVIRONMENT_NAMEという名前と運用環境の値を含む新しい設定を追加します。 デプロイ スロット設定ボックスをオンにして、この設定をスロット設定にします。 [OK] を選択.

  4. APP_VERSIONという別の設定を追加し、値 1 を入力します。 この設定をスロット設定にしないでください[OK] を選択.

  5. 上部のメニュー バーで [ 保存] を選択し、[ 続行] を選択します。

  6. ステージング スロットで上記の手順を繰り返しますが、次の値を使用します。

    名前 価値 デプロイ スロットの設定
    ENVIRONMENT_NAME ステージング イエス
    APP_VERSION 2 いいえ

スロットをスワップする

ステージング スロットで Web アプリのバージョン 2 をテストしたら、スロットをスワップしてデプロイできます。 次の手順に従います。

  1. 運用スロットを構成していることを確認するには、[ すべてのリソース] を選択し、Web アプリの運用スロットを選択します。

  2. 左側のメニュー ウィンドウの [ デプロイ] で、[ デプロイ スロット>Swap] を選択します。

    スワップの開始のスクリーンショット。

  3. ステージング スロットと運用スロットをスワップしようとしていることを確認します。 スワップが設定にどのように影響するかに注目してください。 APP_VERSION設定の値はスロット間で交換されますが、ENVIRONMENT スロット設定の値はスワップされません。 [ スワップ] を選択します。

    スワップの完了のスクリーンショット。

  4. スワップが完了したら、運用スロットの Web アプリの [概要 ] ページに移動し、[参照] を選択 します。 Web アプリが新しいブラウザー タブに表示されます。Web アプリのバージョン 2 が運用環境に入っていることを確認します。

  5. ブラウザー タブを閉じます。

ステージング スロットの自動スワップを構成する

デプロイ スロットを使用したら、Web アプリの自動スワップ機能を使用して継続的デプロイを有効にすることができます。 自動スワップが有効になっている場合は、ステージング スロットに新しいコードをデプロイできます。Azure では、ステージング スロットと運用スロットをスワップすることで、新しいコードが自動的にウォームアップされ、運用環境にデプロイされます。 自動スワップを構成するには、次の手順に従います。

  1. ステージング スロットの Web アプリの [構成 ] ウィンドウに移動し、[ 全般設定 ] タブに移動します。

  2. [自動スワップを有効にする][オン] に設定します。

  3. 自動スワップ デプロイ スロットの一覧で、運用を選択し、[保存して続行] を選択します。

    自動スワップの構成のスクリーンショット。

新しいコードをデプロイし、運用環境に自動スワップする

次に、Web アプリのバージョン 3 を作成するようにコードを変更します。 ステージング スロットにデプロイすると、自動スワップの動作を確認できます。 次の手順に従います。

  1. まだ実行されていない場合は、Cloud Shell の右側でエディターを再起動します。

    cd ~/demoapp/app-service-web-dotnet-get-started/
    code .
    
  2. コード エディターの左側の [ファイル] リスト で、 aspnet-get-started>Views>Home を展開し、 Index.cshtml を選択します。

  3. 次のコードを見つけます。

    <h1>Web App Version 2</h1>
    
  4. そのコードをこのコードに置き換えます。

    <h1>Web App Version 3</h1>
    
  5. 変更を保存するには、 Ctrl キーを押しながら S キーを押します。

  6. Cloud Shell で、次のコマンドを実行します。 メッセージが表示されたら、デプロイ パスワードを入力します。

    git add .
    git commit -m "Third version of web app."
    git push staging
    

    デプロイが完了するまで待ちます。 テキスト出力の終わり近くに、デプロイで運用スロットへの自動スワップが要求されたことを示すメッセージが表示されます。

  7. Azure portal で、運用スロットの Web アプリの [概要 ] ページに移動し、[参照] を選択 します。 Web アプリの 3 番目のバージョンが新しいブラウザー タブに表示されます。古いバージョンが表示されている場合は、しばらく待ってからページを更新する必要があります。 スワップ操作はアトミックであり、すぐに発生しますが、スワップ操作を実行する前に、App Service が準備するまでに少し時間がかかります。

新しいバージョンをロールバックする

アプリのバージョン 3 を運用環境にデプロイすると、予期しない問題が明らかになったとします。 これを迅速に解決するには、スロットをもう一度スワップすることで、サイトの以前のバージョンにロールバックできます。

  1. 運用スロットの Web アプリの [デプロイ スロット ] ウィンドウに移動します。

  2. ステージング スロットと運用スロットを交換します。

  3. スワップが完了したら、[ 概要 ] ページで [ 参照 ] を選択して、最後に 1 回アプリを表示します。 バージョン 2 が運用環境に再デプロイされたことを確認できます。