Azure Logic Apps での統合アカウントの複数のリージョンにわたるディザスター リカバリーを設定する

適用対象: Azure Logic Apps (従量課金 + Standard)

B2B のワークロードには、発注や請求などの金銭が関係するトランザクションが含まれます。 ビジネスでは、障害イベント時に迅速に復旧して、パートナーと合意したビジネス レベルの SLA を満たすことが重要です。 この記事では、B2Bワークロード向けのビジネス継続計画の構築方法について説明します。

  • 災害復旧準備
  • 障害イベント時のセカンダリ リージョンへのフェールオーバー
  • 障害イベント後のプライマリ リージョンへの復帰

災害復旧準備

  1. セカンダリ リージョンを指定し、セカンダリ リージョンに統合アカウントを作成します。

  2. 必要なメッセージ フローのために、実行状態をセカンダリ リージョンの統合アカウントにレプリケートする必要があるパートナー、スキーマ、および契約を追加します。

    ヒント

    リージョン間で統合アカウントのアーティファクトの命名規則に整合性があることを確認します。

  3. プライマリリージョンからランステータスを取得するには、セカンダリリージョンでロジックアプリとワークフローを作成します。

    このロジックアプリのワークフローには トリガーアクションが必要です。 トリガーはプライマリージョン統合アカウントに接続されるはずです。 アクションはセカンダリーリージョン統合アカウントに接続されるはずです。

    時間間隔に基づいて、トリガーはプライマリ リージョン実行状態テーブルのポーリングを実行し、新しいレコードが存在すればそれを取得します。 アクションはセカンダリ リージョンの統合アカウントのテーブルを更新します。 これは、プライマリ リージョンからセカンダリ リージョンに増分ランタイム状態を取得するのに役立ちます。

    統合アカウントにおける事業継続性は、B2Bプロトコル(X12、AS2、EDIFACT)に基づくサポートを目的に設計されています。 詳細な手順を知りたい場合は、この記事内のリンクを選択してください。

  4. すべての主要地域資源を二次地域に展開します。

    主要なリージョンリソースには、Azure SQL Database または Azure Cosmos DB、Azure Service Bus、メッセージングに使われるAzure Event Hubs、Azure API Management、そしてAzure Logic Apps feature in Azure App Service.

  5. プライマリリージョンからセカンダリージョンへの接続を設定してください。 プライマリリージョンから実行ステータスを取得するには、セカンダリージョンでロジックアプリとワークフローを作成します。

    このロジックアプリのワークフローには トリガーアクションが必要です。 トリガーはプライマリージョン統合アカウントに接続されるはずです。 アクションはセカンダリーリージョン統合アカウントに接続されるはずです。

    時間間隔に基づいて、トリガーはプライマリ リージョン実行状態テーブルのポーリングを実行し、新しいレコードが存在すればそれを取得します。 アクションはセカンダリ リージョンの統合アカウントのテーブルを更新します。 これは、プライマリ リージョンからセカンダリ リージョンに増分ランタイム状態を取得するのに役立ちます。

Azure Logic Apps統合アカウントにおけるビジネス継続性は、B2BプロトコルX12、AS2、EDIFACTに基づくサポートを提供します。 X12とAS2の使用に関する詳細な手順については、この記事の以下のセクションをご覧ください。

障害イベント時のセカンダリ リージョンへのフェールオーバー

災害発生時には、主要地域が業務継続のために利用できない場合、トラフィックを二次領域に誘導します。 セカンダリーリージョンは、パートナーが合意したRPO/RTOを満たすために迅速に機能を回復するのに役立ちます。 このアプローチはまた、ある地域から別の地域へのフェイルオーバーの努力を最小限に抑えます。

制御番号をプライマリ領域からセカンダリ領域にコピーする際に遅延が発生することが予想されます。 災害発生時にパートナーに重複生成された制御番号を送信しないため、 PowerShellのcmdletを使って二次リージョン契約の制御番号を増やしてください。

障害イベント後のプライマリ リージョンへの復帰

利用可能なプライマリー地域にフォールバックするには、以下の手順に従ってください:

  1. セカンダリ リージョンでパートナーからのメッセージの受け入れを停止します。

  2. PowerShell コマンドレットを使用して、すべてのプライマリ リージョン契約について、生成される制御番号を増やします。

  3. セカンダリ リージョンからプライマリ リージョンにトラフィックをダイレクトします。

  4. プライマリ リージョンから実行状態を取得するためにセカンダリ リージョンで作成したロジック アプリが有効になっていることを確認します。

X12

EDI X12文書の事業継続性は、コントロール番号に基づいています。

前提条件

  • 取引相手間のX12契約

  • 受信メッセージの災害復旧を有効にするには、X12契約の 受信設定で以下の設定を選択してください:

    • インターチェンジ制御番号の重複は禁止
    • グループ制御番号の重複を禁止する
    • トランザクションセットの制御番号の重複を拒否する

    X12の同意画面で「受信設定」ペインが開き、設定が重複されているスクリーンショットです。

ヒント

また、 X12のクイックスタートテンプレート を使ってロジックアプリを作成することもできます。 テンプレートではプライマリとセカンダリの統合アカウントを作成する必要があります。

このテンプレートは、受信制御番号用と生成された制御数用という2つの論理アプリとワークフローを作成します。 それぞれのトリガーとアクションはLogicアプリのワークフローで作成され、トリガーはプライマリ統合アカウントに、アクションはセカンダリ統合アカウントに結びつけられます。

  1. セカンダリ リージョンにコンスンション ロジック アプリ ワークフローの例を作成します。

  2. 一般的な手順に従って、「コントロール番号が変更されたとき」と名付けられたX12トリガーを追加します。

    トリガーは統合アカウントへの接続を作成するよう促します。 トリガーをあなたのプライマリリージョン統合アカウントに接続してください。

  3. 接続名を入力し、リストからプライマリ リージョンの統合アカウントを選択して、 [作成] を選択します。

    X12トリガーの接続名とプライマリーリージョン連携アカウントの入力先を示すスクリーンショットです。「コントロール番号が変更された時」です。

  4. オプションで、 DateTimeをコントロール番号同期フィールドの開始に設定してください周波数フィールドをまたは秒に設定し、インターバル値も付けます。

    トリガー情報ボックスとDateTimeが表示され、X12のコントロール番号同期、周波数、間隔フィールドを開始するためのスクリーンショットです。

  5. 一般的な手順に従って、コントロール番号を追加または更新するX12アクションを追加してください。

  6. アクションをセカンダリ リージョン統合アカウントに接続するには、 [接続の変更]>[新しい接続の追加] の順に選択し、使用可能な統合アカウントのリストを表示します。 接続名を入力し、リストからセカンダリ リージョンの統合アカウントを選択して、 [作成] を選択します。

    セカンダリーリージョン連携アカウント名を追加する場所を示すスクリーンショットです。

  7. 右上のアイコンを選択して生入力に切り替えます。

    X12のRAW入力に切り替えるための選択アイコンを示すスクリーンショットです。

  8. 動的コンテンツリストから Bodyを選択し、Logicアプリを保存します。

    X12のBodyフィールドを選択できる動的コンテンツリストのスクリーンショットです。

    時間間隔に基づいて、トリガーはプライマリ リージョンで受信した制御番号テーブルのポーリングを実行し、新しいレコードを取得します。 このアクションによって、セカンダリ リージョンの統合アカウントのレコードが更新されます。 更新がない場合、トリガーの状態は [スキップ済み] と表示されます。

    X12のコントロール番号表を示すスクリーンショットです。

時間間隔に基づいて、増分ランタイム状態がプライマリ リージョンからセカンダリ リージョンにレプリケートされます。 障害イベント時に、プライマリ リージョンが使用できない場合は、セカンダリ リージョンにトラフィックをダイレクトしてビジネス継続性を確保します。

EDIFACT

EDI EDIFACT ドキュメントのビジネス継続性は、制御番号に基づいています。

前提条件

  • 取引相手間のEDIFACT契約

  • 受信メッセージの災害復旧を有効にするには、EDIFACT契約の 受信設定で以下の設定を選択してください。

    • インターチェンジ制御番号の重複は禁止
    • グループ制御番号の重複を禁止する
    • トランザクションセットの制御番号の重複を拒否する

    [Receive Settings] ウィンドウが開かれ、重複設定が選択されている EDIFACT 契約を示すスクリーンショット。

  1. セカンダリ リージョンにコンスンション ロジック アプリ ワークフローの例を作成します。

  2. 制御番号が変更されたとき」というEDIFACTトリガーを追加する一般的な手順に従ってください。

    トリガーは統合アカウントへの接続を作成するよう促します。 トリガーをあなたのプライマリリージョン統合アカウントに接続してください。

  3. 接続名を入力し、リストからプライマリ リージョンの統合アカウントを選択して、 [作成] を選択します。

    EDIFACTトリガーの接続名とプライマリーリージョン統合アカウントをどこに入力するかを示すスクリーンショットです。名前は「コントロール番号が変更された時」です。

  4. オプションで、 DateTimeをコントロール番号同期フィールドの開始に設定してください周波数フィールドをまたは秒に設定し、インターバル値も付けます。

    EDIFACTの制御番号同期、周波数、間隔フィールドを開始するDateTimeを含むトリガー情報ボックスのスクリーンショットです。

  5. 一般的な手順に従って、制御番号を追加または更新するEDIFACTアクションを追加してください。

  6. アクションをセカンダリ リージョン統合アカウントに接続するには、 [接続の変更]>[新しい接続の追加] の順に選択し、使用可能な統合アカウントのリストを表示します。 接続名を入力し、リストからセカンダリ リージョンの統合アカウントを選択して、 [作成] を選択します。

    セカンダリーリージョン連携アカウント名を作成する場所を示すスクリーンショットです。

  7. 右上のアイコンを選択して生入力に切り替えます。

    EDIFACTの生入力に切り替えるための選択アイコンを示すスクリーンショットです。

  8. 動的コンテンツリストから Bodyを選択し、Logicアプリを保存します。

    X12のBodyフィールドを選択できる動的コンテンツリストのスクリーンショットです。

    時間間隔に基づいて、トリガーはプライマリ リージョンで受信した制御番号テーブルのポーリングを実行し、新しいレコードを取得します。 このアクションによって、セカンダリ リージョンの統合アカウントのレコードが更新されます。 更新がない場合、トリガーの状態は [スキップ済み] と表示されます。

    X12のコントロール番号表を示すスクリーンショットです。

時間間隔に基づいて、増分ランタイム状態がプライマリ リージョンからセカンダリ リージョンにレプリケートされます。 障害イベント時に、プライマリ リージョンが使用できない場合は、セカンダリ リージョンにトラフィックをダイレクトしてビジネス継続性を確保します。

AS2

AS2 プロトコルを使用するドキュメントのビジネス継続性は、メッセージ ID と MIC 値に基づいています。

ヒント

AS2のクイックスタートテンプレートを使ってロジックアプリを作成することもできます。 テンプレートではプライマリとセカンダリの統合アカウントを作成する必要があります。 テンプレートはトリガーとアクションを持つLogicアプリのワークフローを作成します。 ロジック アプリのワークフローでは、トリガーからプライマリ統合アカウントへの接続と、セカンダリ統合アカウントへのアクションを作成します。

  1. セカンダリ リージョンに従量課金ロジック アプリ ワークフローの例を作成します。

  2. 一般的な手順に従って、「MIC値が作成されるとき」という名前のAS2トリガーを追加します。

    トリガーは統合アカウントへの接続を作成するよう促します。 トリガーをあなたのプライマリリージョン統合アカウントに接続してください。

  3. 接続名を入力し、リストからプライマリ リージョンの統合アカウントを選択して、 [作成] を選択します。

    AS2トリガーの接続名を「MIC値が作成される時」に入力する場所を示すスクリーンショットです。

  4. 必要に応じて、MIC 値の同期を開始する DateTime フィールドを設定します。 周波数フィールドをまたは秒に設定し、インターバル値も付けます。

    トリガー情報ボックスのスクリーンショットで、AS2のMIC値同期開始のDateTime、Frequency、Intervalフィールドが表示されます。

  5. 一般的な手順に従って「MIC内容を追加または更新」というAS2アクションを追加してください。

  6. アクションをセカンダリ リージョン統合アカウントに接続するには、 [接続の変更]>[新しい接続の追加] の順に選択し、使用可能な統合アカウントのリストを表示します。 接続名を入力し、リストからセカンダリ リージョンの統合アカウントを選択して、 [作成] を選択します。

    利用可能な統合アカウントと接続名フィールドが表示されたMICの追加または更新内容ウィンドウのスクリーンショットです。

  7. 右上のアイコンを選択して生入力に切り替えます。

    AS2の生入力に切り替えるための選択アイコンを示すスクリーンショットです。

  8. 動的コンテンツリストから Bodyを選択し、Logicアプリを保存します。

    AS2のBodyフィールドを選択できる動的コンテンツリストのスクリーンショットです。

    時間間隔に基づいて、トリガーはプライマリ リージョン テーブルのポーリングを実行し、新しいレコードを取得します。 アクションはセカンダリ リージョンの統合アカウントのレコードを更新します。

    更新がない場合、トリガーの状態は [スキップ済み] と表示されます。

    トリガーステータスリストを示すスクリーンショットです。

時間間隔に基づいて、増分ランタイム状態がプライマリ リージョンからセカンダリ リージョンにレプリケートされます。 障害イベント時に、プライマリ リージョンが使用できない場合は、セカンダリ リージョンにトラフィックをダイレクトしてビジネス継続性を確保します。

Azure Monitor ログで B2B メッセージを監視する