次の方法で共有


Azure Logic Apps でダウンタイムをゼロにできるようにデプロイ スロットを設定する

適用対象: Azure Logic Apps (Standard)

常に使用可能で応答性の高いミッション クリティカルな Standard ロジック アプリをデプロイするには、 デプロイ スロットを作成します。 これらのスロットは、運用前にさまざまなバージョンのアプリをホストする分離された環境です。

これらのスロットを使用して、アプリの ダウンタイムをゼロ にすることができます。 ダウンタイムがゼロとは、アプリの新しいバージョンをデプロイするときに、更新やメンテナンス中でも、エンド ユーザーに中断やダウンタイムが発生しないことを意味します。

デプロイ スロットには、次の利点があります。

  • 中断なくデプロイ スロットと運用スロットをスワップできます。 可用性やパフォーマンスに影響を与えることなく、ロジック アプリとワークフローを更新できます。
  • 運用スロットに変更を適用する前に、デプロイ スロットで変更を検証します。
  • デプロイに何らかの問題が発生した場合は、以前のバージョンにロールバックします。
  • ロジック アプリあたりの推奨ワークフロー数を超える必要がある場合に、パフォーマンスが低下するリスクを低減します。

デプロイ スロットを使用すると、継続的デリバリーを実現し、アプリの品質と信頼性を向上させることができます。 Standard ロジック アプリ ワークフローは Azure Functions の拡張性に基づいているため、Azure のデプロイ スロットの詳細については、「Azure Functions のデプロイ スロット」を参照してください。

Azure portal、Standard ロジック アプリ リソース、デプロイ スロット ページを示すスクリーンショット。

既知の問題と制限事項

  • 非運用スロットは読み取り専用モードで作成されます。

  • 非運用スロットのディスパッチャーはオフになっており、ワークフローは、運用スロットにある場合にのみ実行できます。

  • Standard ロジック アプリのデプロイ スロットでは、トラフィック分散が無効になります。

  • Standard ロジック アプリのデプロイ スロットは、次のシナリオをサポートしていません。

    • ブルーグリーン デプロイ
    • スロットをスワップする前の製品検証テスト
    • A/B テスト
  • ストレージがプライベートの場合は、次の手順を実行します。

    1. スロットを作成したら、デプロイ スロットに移動します。 スロット メニューの [設定] で、[ 環境変数] を選択します。
    2. [ アプリ設定 ] タブで、 WEBSITE_CONTENTSHAREという名前のアプリ設定のファイル共有の値を見つけます。
    3. ストレージ アカウントに移動し、同じ名前を使用するファイル共有を手動で作成します。
    4. 各スロットで、WEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGSという名前 アプリ設定を追加し、値を 0 に設定します。

前提条件

デプロイ スロットの作成

デプロイ スロットを作成するには、次のオプションを使用できます。

  1. Azure portal で、Standard ロジック アプリ リソースを開きます。

  2. リソース サイドバーの [ デプロイ] で、[ デプロイ スロット] を選択します。

  3. ツールバーの [追加] を選択します。

  4. [ スロットの追加 ] ウィンドウで、デプロイ スロットの一意の名前を指定します。

    名前には、小文字の英数字またはハイフン (-) のみを使用する必要があります。

    スロットを作成すると、名前の形式は <logic-app-name-deployment-slot-name> になります。

  5. 終了したら、[追加] を選択します。

デプロイ スロットの作成を確認する

デプロイ スロットを作成したら、デプロイされたロジック アプリ リソースにそのスロットが存在することを確認します。

  1. Azure portal で、Standard ロジック アプリ リソースを開きます。

  2. リソース サイドバーの [ デプロイ] で、[ デプロイ スロット] を選択します。

  3. [ デプロイ スロット ] ページの [ デプロイ スロット] で、新しいデプロイ スロットを見つけて選択します。

    作成後、デプロイ スロット名は次の形式を使用します: <logic-app-name-deployment-slot-name>。

デプロイ スロットにロジック アプリの変更をデプロイする

デプロイ スロットにロジック アプリの変更をデプロイするには、次のオプションを使用できます。

現時点では使用できません。 Visual Studio Code または Azure CLI の手順に従って、変更をデプロイします。

変更に対するデプロイを確認する

変更をデプロイしたら、デプロイされたロジック アプリ リソースに変更が表示されることを確認します。

  1. Azure portal で、Standard ロジック アプリ リソースを開きます。

  2. リソース サイドバーの [ デプロイ] で、[ デプロイ スロット] を選択します。

  3. [ デプロイ スロット ] ページの [ デプロイ スロット] で、デプロイ スロットを見つけて選択します。

  4. リソースサイドバーで、[ 概要] を選択します。 [通知] タブで、デプロイの問題が存在するかどうかを確認します。たとえば、アプリの起動時やスロットのスワップ時に発生する可能性のあるエラーなどがあります。

    この例では、通知は表示されません。

    スクリーンショットは、Azure portal、ロジック アプリのデプロイ スロット リソースと [概要] ページ、選択した [通知] タブを示しています。

  5. ワークフローの変更を確認するには、[ ワークフロー] で [ ワークフロー] を選択し、読み取り専用ビューに表示されるワークフローを選択します。

デプロイ スロットと運用スロットのスワップ

デプロイ スロットを現在の運用スロットとスワップするには、次のオプションが使用可能です。

  1. Azure portal で、スロットをスワップする Standard ロジック アプリ リソースを開きます。

  2. リソース サイドバーの [ デプロイ] で、[ デプロイ スロット] を選択します。

  3. ツールバーの [スワップ] を選択します。

  4. [ スワップ ] ウィンドウの [ ソース] で、アクティブにするデプロイ スロットを選択します。

  5. [ターゲット] で、デプロイ スロットに置き換える運用スロットを選択してください。

    [プレビューでスワップを実行] は、デプロイ スロット設定を有効にしたロジック アプリでのみ機能します。

  6. [構成変更] で、ソースとターゲットのスロットの構成変更を確認します。

  7. 準備ができたら、[スワップの開始] を選択します

  8. 操作が正常に完了するまで待ちます。

スロットが正常にスワップされたことを確認する

スロットをスワップしたら、デプロイ スロットからの変更が運用スロットで表示されるようになったことを確認します。

  1. Azure portal で、Standard ロジック アプリ リソースを開きます。

  2. リソース メニューの [ワークフロー][ワークフロー] を選択し、変更を確認するワークフローを選択します。

デプロイ スロットの削除

Standard ロジック アプリ リソースからデプロイ スロットを削除するために、次のオプションを使用できます。

  1. Azure portal で、Standard ロジック アプリ リソースを開きます。

  2. リソース サイドバーの [ デプロイ] で、[ デプロイ スロット] を選択します。

  3. [ デプロイ スロット ] ページの [ デプロイ スロット] で、削除するデプロイ スロットを選択します。

  4. デプロイ スロットリソースサイドバーで、[ 概要] を選択します。

  5. [概要] ツールバーで [削除] を選択します。

  6. デプロイ スロット名を入力して削除を確認し、[削除] を選択します。

    スクリーンショットは、Azure portal、概要ページが開いたデプロイ スロット リソース、および削除するデプロイ スロット名を含む削除確認ウィンドウを示しています。

デプロイ スロットの削除を確認する

デプロイ スロットを削除したら、デプロイされた Standard ロジック アプリ リソースにそのスロットが存在しないことを確認します。

  1. Azure portal で、Standard ロジック アプリ リソースを開きます。
  2. リソース サイドバーの [ デプロイ] で、[ デプロイ スロット] を選択します。
  3. [ デプロイ スロット ] ページの [ デプロイ スロット] で、デプロイ スロットが存在しなくなったことを確認します。