デプロイ スロットをスワップすることによって Web アプリをデプロイする

完了

スロットをスワップするときに、Web アプリの動作と構成を厳密に制御できます。

運用とステージング用のデプロイ スロットを設定したとします。 ステージング スロットで、新しいバージョンのソーシャル メディア Web アプリをテストしました。 次は、その新しいバージョンを運用環境にデプロイします。 アプリを円滑に、かつ適切な構成でデプロイする必要があります。

ここでは、Web アプリを運用環境にスワップするための適切な構成について学習します。

スワップの構成を管理する

2 つのスロットをスワップすると、アプリと共にそのアプリの構成が新しいスロットに移動します。 この動作は、個々のアプリケーション設定と構成文字列をスロット設定として構成することにより、オーバーライドできます。

たとえば、2 つのデータベースがあるとします。 1 つは運用環境で、もう 1 つは承認テストで使用します。 ステージング スロットにあるバージョンのアプリでは、常にテスト データベースを使う必要があります。 運用スロットにあるバージョンのアプリでは、常に運用データベースを使う必要があります。 データベース接続文字列をスロット設定として構成することにより、これを実現できます。

スロット設定を構成する

スワップの設定を表示して構成するには、Web アプリのリソースに移動して、次の手順に従います。

  1. Azure portal のメニューまたは [ホーム] ページで [すべてのリソース] を選択し、構成するデプロイ スロットを選択します。

  2. [構成] ペインに移動します。

  3. [アプリケーション設定] タブで、関心がある設定の [デプロイ スロットの設定] フィールドにチェックマークが付いているかどうかを確認します。 特定の設定のチェックマークを設定または設定解除するには、設定の鉛筆ボタンを選択して編集し、[デプロイ スロットの設定] チェックボックスを目的の値に切り替えて [OK] を選択します。

    Screenshot of slot settings configuration in the Azure portal.

    Screenshot of the toggle deployment slot setting in the Azure portal.

  4. 完了したら、[構成] ペインで [保存] を選択して設定を保存します。

Azure portal でスロットをスワップする

Azure portal で 2 つのスロットをスワップするには:

  1. Azure portal のメニューまたは [ホーム] ページで [すべてのリソース] を選択し、Web アプリのデプロイ スロットのいずれかに移動し、[デプロイ スロット] ペインを選択します。

  2. [スワップ] を選択します。

  3. [スワップ] ダイアログ ボックスでは、ソースおよびターゲットのスロットを選択し、スワップされたスロットに適用される設定の概要を確認することができます。

    Screenshot of swapping two slots in the Azure portal.

スロットのスワップのプレビューを理解する

スロットをスワップすると、ホスト名をスワップする前に、ターゲット スロット (通常は運用スロット) の設定がソース スロットにあるバージョンのアプリに適用されます。 この時点で問題が検出される場合があります。 たとえば、データベース接続文字列がスロット設定として構成されている場合、新しいバージョンの Web アプリでは、既存の運用データベースが使用されます。 スワップする前に運用データベースのデータベース スキーマをアップグレードし忘れると、新しいバージョンのアプリで古いスキーマを使おうとしたときに、エラーや例外が表示される可能性があります。

運用環境でアプリを稼働する前に問題を検出するために、Azure App Service にはプレビューでのスワップ機能が用意されています。 このオプションを選択すると、スワップは 2 つのフェーズで進みます。

  • フェーズ 1:ターゲット スロットのスロット設定が、ソース スロットの Web アプリに適用されます。 その後、Azure によってソース スロットがウォームアップされます。 この時点で、スワップ操作は一時停止し、ユーザーはソース スロットのアプリをテストして、それがターゲット スロットの構成で動作することを確認できます。 問題が見つからなかった場合は、次のフェーズを開始します。
  • フェーズ 2:2 つのサイトのホスト名がスワップされます。 現在ソース スロットにあるバージョンのアプリが、そのスロット設定を受け取ります。

重要

Web アプリがステージング スロットにある間に、それを徹底的にテストします。 非スロット設定でコードのバグと問題を除去します。 プレビューでのスワップ機能は、運用スロットの設定によって発生する問題の特定と除去にのみ役立てることができます。 運用環境へのあらゆる種類のスワップを開始する前に、他のすべてが正常であることを確認します。

スロットのスワップをプレビューする

プレビューでのスワップ機能を使用するには、[プレビューでスワップを実行] を選択し、設定を確認してから、[スワップの開始] を選択します。

Screenshot of swapping two slots with a preview.

リンクに従い、新しいバージョンのサイトをプレビューします。 プレビューでは、送信先スロットのスロット設定が適用されます。 続行する場合は、[スワップの完了] を選択します。

自動スワップ

自動スワップにより、スワップ ベースのデプロイによるゼロ ダウンタイムと簡単なロールバックのメリットが、自動デプロイ パイプラインに組み込まれます。 自動スワップ用にスロットを構成すると、コードまたはコンテンツをそのスロットにプッシュするたびに、Azure によって自動的にスワップが行われます。

自動スワップを使う場合、スワップする前にステージング スロットで新しいバージョンのアプリをテストすることはできません。 自動スワップによってメリットがあるのは、主に、ダウンタイムなしのデプロイを望み、かつシンプルな自動デプロイ パイプラインを使いたいユーザーです。

スワップ前にテストできるようにする場合は、スロットのスワップそのものを必要とする、より複雑なデプロイ パイプラインが必要です。 または、テスト専用の別のスロットにデプロイすることもできます。

Note

自動スワップは、App Service on Linux では利用できません。

自動スワップを構成する

スロットの自動スワップを構成するには、Azure portal でそのスロットの [構成] > [全般設定] ペインに移動します。 [デプロイ スロット] の下の [自動スワップが有効][オン] に設定し、ドロップダウン リストからターゲット スロットを選択して、上部メニュー バーの [保存] を選択します。

Screenshot of auto swap configuration in the Azure portal.

このオプションは、運用スロット以外のスロットでのみ使用できます。