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

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

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

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

ディザスター リカバリーの準備

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

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

    ヒント

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

  3. プライマリ リージョンから実行状態を取得するには、セカンダリ リージョンにロジック アプリを作成します。

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

  4. Logic Apps 統合アカウントのビジネス継続性は、X12、AS2、EDIFACT の各 B2B プロトコルに基づいてサポートするために設計されています。 詳細な手順については、それぞれのリンクを選択してください。

  5. プライマリ リージョンのすべてのリソースを、セカンダリ リージョンにもデプロイすることをお勧めします。

    プライマリ リージョンのリソースには、Azure SQL Database または Azure Cosmos DB、メッセージングに使用する Azure Service Bus と Azure Event Hubs、Azure API Management、Azure App Service の Azure Logic Apps 機能が含まれます。

  6. プライマリ リージョンからセカンダリ リージョンへの接続を確立します。 プライマリ リージョンから実行状態を取得するには、セカンダリ リージョンにロジック アプリを作成します。

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

Logic Apps 統合アカウントのビジネス継続性は、X12、AS2、EDIFACT の各 B2B プロトコルに基づいてサポートを提供します。 X12 と AS2 を使用する手順について詳しくは、この記事の「X12」と「AS2」をご覧ください。

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

障害イベント時に、プライマリ リージョンでビジネス継続性を確保できない場合は、セカンダリ リージョンにトラフィックをダイレクトします。 セカンダリ リージョンは、パートナーと合意した RPO/RTO を満たすため、迅速にビジネスに必要な機能を復旧するのに役立ちます。 また、リージョン間でフェールオーバーするための労力を最小限に抑えます。

プライマリ リージョンからセカンダリ リージョンに制御番号をコピーする際に、待ち時間が予想されます。 障害イベント時に、重複して生成された制御番号をパートナーに送信することを回避するには、PowerShell コマンドレットを使用してセカンダリ リージョン契約で制御番号を増やすことをお勧めします。

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

使用可能な場合にプライマリ リージョンへ復帰するには、次の手順に従います。

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

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

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

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

X12

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

ヒント

X12 クイック スタート テンプレートを使用してロジック アプリを作成することもできます。 プライマリ統合アカウントとセカンダリ統合アカウントの作成は、テンプレートを使用するための前提条件です。 テンプレートは 2 つのロジック アプリを作成するのに役立ちます。1 つは受信した制御番号用、もう 1 つは生成された制御番号用です。 ロジック アプリでそれぞれのトリガーとアクションが作成されます。トリガーはプライマリ統合アカウントに、アクションはセカンダリ統合アカウントに接続します。

前提条件

受信メッセージのディザスター リカバリーを有効にするには、X12 契約の受信設定で重複チェック設定を選択します。

重複チェック設定を選択する

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

  2. X12 で検索し、 [X12 - 制御番号が変更されたとき] を選択します。

    X12 を検索する

    トリガーを選択すると、統合アカウントへの接続を確立するように求められます。 トリガーは、プライマリ リージョンの統合アカウントに接続される必要があります。

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

    接続名を入力し、プライマリ リージョンの統合アカウントを選択する場所を示すスクリーンショット。

  4. 制御番号の同期を開始する DateTime 設定は省略できます。 頻度は、 [日][時間][分] 、または [秒] の間隔に設定できます。

    制御番号の同期を開始する DateTime 設定を示すスクリーンショット。

  5. [新しいステップ]>[アクションの追加] の順に選択します。

    [新しいステップ] ボタンと [アクションの追加] オプションを示すスクリーンショット。

  6. X12 で検索し、 [X12 - 制御番号を追加または更新します] を選択します。

    制御番号の追加または更新

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

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

  8. 右上隅にあるアイコンをクリックして、生の入力に切り替えます。

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

  9. 動的コンテンツ ピッカーの [本文] を選択し、ロジック アプリを保存します。

    動的コンテンツのフィールド

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

    制御番号テーブル

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

EDIFACT

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

前提条件

受信メッセージのディザスター リカバリーを有効にするには、EDIFACT 契約の受信設定で重複チェック設定を選択します。

EDIFACT 契約の受信設定の重複チェック設定を示すスクリーンショット。

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

  2. EDIFACT で検索し、 [EDIFACT - 制御番号が変更されたとき] を選択します。

    EDIFACT の検索

    トリガーを選択すると、統合アカウントへの接続を確立するように求められます。 トリガーは、プライマリ リージョンの統合アカウントに接続される必要があります。

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

    プライマリ リージョンの統合アカウント名

  4. 制御番号の同期を開始する DateTime 設定は省略できます。 頻度は、 [日][時間][分] 、または [秒] の間隔に設定できます。

    DateTime および頻度の設定を示すスクリーンショット。

  5. [新しいステップ]>[アクションの追加] の順に選択します。

    [アクションの追加] を選択する場所を示すスクリーンショット。

  6. EDIFACT で検索し、 [EDIFACT - 制御番号を追加または更新します] を選択します。

    制御番号を追加または更新する場所を示すスクリーンショット。

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

    セカンダリ リージョンの統合アカウント名を作成します。

  8. 右上隅にあるアイコンをクリックして、生の入力に切り替えます。

    生の入力に切り替えるときに選択するアイコンが強調表示されているスクリーンショット。

  9. 動的コンテンツ ピッカーの [本文] を選択し、ロジック アプリを保存します。

[本文] を選択できる動的コンテンツ ピッカーを示すスクリーンショット。

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

制御番号テーブル

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

AS2

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

ヒント

AS2 クイック スタート テンプレートを使用してロジック アプリを作成することもできます。 プライマリ統合アカウントとセカンダリ統合アカウントの作成は、テンプレートを使用するための前提条件です。 テンプレートは、トリガーとアクションをもつロジック アプリを作成するのに役立ちます。 このロジック アプリは、トリガーからプライマリ統合アカウントへの接続と、アクションからセカンダリ統合アカウントへの接続を作成します。

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

  2. AS2 を検索し、 [AS2 - When a MIC value is created] \(AS2 - MIC 値を作成する場合) を選択します。

    AS2 の検索

    トリガーを選択すると、統合アカウントへの接続を確立するように求められます。 トリガーは、プライマリ リージョンの統合アカウントに接続される必要があります。

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

    MIC 値が作成されるときに接続名を入力する場所を示すスクリーンショット。

  4. MIC 値の同期を開始する DateTime 設定は省略できます。 頻度は、 [日][時間][分] 、または [秒] の間隔に設定できます。

    日付時刻と頻度

  5. [新しいステップ]>[アクションの追加] の順に選択します。

    [新しいステップ]、[アクションの追加]

  6. AS2 を検索し、 [AS2 - MIC コンテンツの追加または更新] を選択します。

    MIC の追加または更新

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

    セカンダリ リージョンの統合アカウント名

  8. 右上隅にあるアイコンをクリックして、生の入力に切り替えます。

    生の入力に切り替える

  9. 動的コンテンツ ピッカーの [本文] を選択し、ロジック アプリを保存します。

    動的コンテンツ

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

    プライマリ リージョン テーブル

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

次のステップ

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