適用対象: Azure Logic Apps (従量課金 + Standard)
B2B のワークロードには、発注や請求などの金銭が関係するトランザクションが含まれます。 ビジネスでは、障害イベント時に迅速に復旧して、パートナーと合意したビジネス レベルの SLA を満たすことが重要です。 この記事では、B2Bワークロード向けのビジネス継続計画の構築方法について説明します。
- 災害復旧準備
- 障害イベント時のセカンダリ リージョンへのフェールオーバー
- 障害イベント後のプライマリ リージョンへの復帰
災害復旧準備
セカンダリ リージョンを指定し、セカンダリ リージョンに統合アカウントを作成します。
必要なメッセージ フローのために、実行状態をセカンダリ リージョンの統合アカウントにレプリケートする必要があるパートナー、スキーマ、および契約を追加します。
ヒント
リージョン間で統合アカウントのアーティファクトの命名規則に整合性があることを確認します。
プライマリリージョンからランステータスを取得するには、セカンダリリージョンでロジックアプリとワークフローを作成します。
このロジックアプリのワークフローには トリガー と アクションが必要です。 トリガーはプライマリージョン統合アカウントに接続されるはずです。 アクションはセカンダリーリージョン統合アカウントに接続されるはずです。
時間間隔に基づいて、トリガーはプライマリ リージョン実行状態テーブルのポーリングを実行し、新しいレコードが存在すればそれを取得します。 アクションはセカンダリ リージョンの統合アカウントのテーブルを更新します。 これは、プライマリ リージョンからセカンダリ リージョンに増分ランタイム状態を取得するのに役立ちます。
統合アカウントにおける事業継続性は、B2Bプロトコル(X12、AS2、EDIFACT)に基づくサポートを目的に設計されています。 詳細な手順を知りたい場合は、この記事内のリンクを選択してください。
すべての主要地域資源を二次地域に展開します。
主要なリージョンリソースには、Azure SQL Database または Azure Cosmos DB、Azure Service Bus、メッセージングに使われるAzure Event Hubs、Azure API Management、そしてAzure Logic Apps feature in Azure App Service.
プライマリリージョンからセカンダリージョンへの接続を設定してください。 プライマリリージョンから実行ステータスを取得するには、セカンダリージョンでロジックアプリとワークフローを作成します。
このロジックアプリのワークフローには トリガー と アクションが必要です。 トリガーはプライマリージョン統合アカウントに接続されるはずです。 アクションはセカンダリーリージョン統合アカウントに接続されるはずです。
時間間隔に基づいて、トリガーはプライマリ リージョン実行状態テーブルのポーリングを実行し、新しいレコードが存在すればそれを取得します。 アクションはセカンダリ リージョンの統合アカウントのテーブルを更新します。 これは、プライマリ リージョンからセカンダリ リージョンに増分ランタイム状態を取得するのに役立ちます。
Azure Logic Apps統合アカウントにおけるビジネス継続性は、B2BプロトコルX12、AS2、EDIFACTに基づくサポートを提供します。 X12とAS2の使用に関する詳細な手順については、この記事の以下のセクションをご覧ください。
障害イベント時のセカンダリ リージョンへのフェールオーバー
災害発生時には、主要地域が業務継続のために利用できない場合、トラフィックを二次領域に誘導します。 セカンダリーリージョンは、パートナーが合意したRPO/RTOを満たすために迅速に機能を回復するのに役立ちます。 このアプローチはまた、ある地域から別の地域へのフェイルオーバーの努力を最小限に抑えます。
制御番号をプライマリ領域からセカンダリ領域にコピーする際に遅延が発生することが予想されます。 災害発生時にパートナーに重複生成された制御番号を送信しないため、 PowerShellのcmdletを使って二次リージョン契約の制御番号を増やしてください。
障害イベント後のプライマリ リージョンへの復帰
利用可能なプライマリー地域にフォールバックするには、以下の手順に従ってください:
セカンダリ リージョンでパートナーからのメッセージの受け入れを停止します。
PowerShell コマンドレットを使用して、すべてのプライマリ リージョン契約について、生成される制御番号を増やします。
セカンダリ リージョンからプライマリ リージョンにトラフィックをダイレクトします。
プライマリ リージョンから実行状態を取得するためにセカンダリ リージョンで作成したロジック アプリが有効になっていることを確認します。
X12
EDI X12文書の事業継続性は、コントロール番号に基づいています。
前提条件
取引相手間のX12契約
受信メッセージの災害復旧を有効にするには、X12契約の 受信設定で以下の設定を選択してください:
- インターチェンジ制御番号の重複は禁止
- グループ制御番号の重複を禁止する
- トランザクションセットの制御番号の重複を拒否する
ヒント
また、 X12のクイックスタートテンプレート を使ってロジックアプリを作成することもできます。 テンプレートではプライマリとセカンダリの統合アカウントを作成する必要があります。
このテンプレートは、受信制御番号用と生成された制御数用という2つの論理アプリとワークフローを作成します。 それぞれのトリガーとアクションはLogicアプリのワークフローで作成され、トリガーはプライマリ統合アカウントに、アクションはセカンダリ統合アカウントに結びつけられます。
セカンダリ リージョンにコンスンション ロジック アプリ ワークフローの例を作成します。
一般的な手順に従って、「コントロール番号が変更されたとき」と名付けられたX12トリガーを追加します。
トリガーは統合アカウントへの接続を作成するよう促します。 トリガーをあなたのプライマリリージョン統合アカウントに接続してください。
接続名を入力し、リストからプライマリ リージョンの統合アカウントを選択して、 [作成] を選択します。
オプションで、 DateTimeをコントロール番号同期フィールドの開始に設定してください 。 周波数フィールドを日、時、分、または秒に設定し、インターバル値も付けます。
一般的な手順に従って、コントロール番号を追加または更新するX12アクションを追加してください。
アクションをセカンダリ リージョン統合アカウントに接続するには、 [接続の変更]>[新しい接続の追加] の順に選択し、使用可能な統合アカウントのリストを表示します。 接続名を入力し、リストからセカンダリ リージョンの統合アカウントを選択して、 [作成] を選択します。
右上のアイコンを選択して生入力に切り替えます。
動的コンテンツリストから Bodyを選択し、Logicアプリを保存します。
時間間隔に基づいて、トリガーはプライマリ リージョンで受信した制御番号テーブルのポーリングを実行し、新しいレコードを取得します。 このアクションによって、セカンダリ リージョンの統合アカウントのレコードが更新されます。 更新がない場合、トリガーの状態は [スキップ済み] と表示されます。
時間間隔に基づいて、増分ランタイム状態がプライマリ リージョンからセカンダリ リージョンにレプリケートされます。 障害イベント時に、プライマリ リージョンが使用できない場合は、セカンダリ リージョンにトラフィックをダイレクトしてビジネス継続性を確保します。
EDIFACT
EDI EDIFACT ドキュメントのビジネス継続性は、制御番号に基づいています。
前提条件
取引相手間のEDIFACT契約
受信メッセージの災害復旧を有効にするには、EDIFACT契約の 受信設定で以下の設定を選択してください。
- インターチェンジ制御番号の重複は禁止
- グループ制御番号の重複を禁止する
- トランザクションセットの制御番号の重複を拒否する
セカンダリ リージョンにコンスンション ロジック アプリ ワークフローの例を作成します。
「制御番号が変更されたとき」というEDIFACTトリガーを追加する一般的な手順に従ってください。
トリガーは統合アカウントへの接続を作成するよう促します。 トリガーをあなたのプライマリリージョン統合アカウントに接続してください。
接続名を入力し、リストからプライマリ リージョンの統合アカウントを選択して、 [作成] を選択します。
オプションで、 DateTimeをコントロール番号同期フィールドの開始に設定してください 。 周波数フィールドを日、時、分、または秒に設定し、インターバル値も付けます。
一般的な手順に従って、制御番号を追加または更新するEDIFACTアクションを追加してください。
アクションをセカンダリ リージョン統合アカウントに接続するには、 [接続の変更]>[新しい接続の追加] の順に選択し、使用可能な統合アカウントのリストを表示します。 接続名を入力し、リストからセカンダリ リージョンの統合アカウントを選択して、 [作成] を選択します。
右上のアイコンを選択して生入力に切り替えます。
動的コンテンツリストから Bodyを選択し、Logicアプリを保存します。
時間間隔に基づいて、トリガーはプライマリ リージョンで受信した制御番号テーブルのポーリングを実行し、新しいレコードを取得します。 このアクションによって、セカンダリ リージョンの統合アカウントのレコードが更新されます。 更新がない場合、トリガーの状態は [スキップ済み] と表示されます。
時間間隔に基づいて、増分ランタイム状態がプライマリ リージョンからセカンダリ リージョンにレプリケートされます。 障害イベント時に、プライマリ リージョンが使用できない場合は、セカンダリ リージョンにトラフィックをダイレクトしてビジネス継続性を確保します。
AS2
AS2 プロトコルを使用するドキュメントのビジネス継続性は、メッセージ ID と MIC 値に基づいています。
ヒント
AS2のクイックスタートテンプレートを使ってロジックアプリを作成することもできます。 テンプレートではプライマリとセカンダリの統合アカウントを作成する必要があります。 テンプレートはトリガーとアクションを持つLogicアプリのワークフローを作成します。 ロジック アプリのワークフローでは、トリガーからプライマリ統合アカウントへの接続と、セカンダリ統合アカウントへのアクションを作成します。
セカンダリ リージョンに従量課金ロジック アプリ ワークフローの例を作成します。
一般的な手順に従って、「MIC値が作成されるとき」という名前のAS2トリガーを追加します。
トリガーは統合アカウントへの接続を作成するよう促します。 トリガーをあなたのプライマリリージョン統合アカウントに接続してください。
接続名を入力し、リストからプライマリ リージョンの統合アカウントを選択して、 [作成] を選択します。
必要に応じて、MIC 値の同期を開始する DateTime フィールドを設定します。 周波数フィールドを日、時、分、または秒に設定し、インターバル値も付けます。
一般的な手順に従って「MIC内容を追加または更新」というAS2アクションを追加してください。
アクションをセカンダリ リージョン統合アカウントに接続するには、 [接続の変更]>[新しい接続の追加] の順に選択し、使用可能な統合アカウントのリストを表示します。 接続名を入力し、リストからセカンダリ リージョンの統合アカウントを選択して、 [作成] を選択します。
右上のアイコンを選択して生入力に切り替えます。
動的コンテンツリストから Bodyを選択し、Logicアプリを保存します。
時間間隔に基づいて、トリガーはプライマリ リージョン テーブルのポーリングを実行し、新しいレコードを取得します。 アクションはセカンダリ リージョンの統合アカウントのレコードを更新します。
更新がない場合、トリガーの状態は [スキップ済み] と表示されます。
時間間隔に基づいて、増分ランタイム状態がプライマリ リージョンからセカンダリ リージョンにレプリケートされます。 障害イベント時に、プライマリ リージョンが使用できない場合は、セカンダリ リージョンにトラフィックをダイレクトしてビジネス継続性を確保します。