アウトバウンドのデータ統合
アウトバウンド データ統合では、Microsoft Dataverse 内のデータを外部システムで利用可能にします。
Dataverse イベント公開
Microsoft Dataverse には、外部システムとの統合を可能にするイベント モデルが用意されています。 Dataverse イベント フレームワークと呼ばれるこのモデルでは、プラットフォーム イベントに応じたカスタム コードと外部アクションのトリガーがサポートされます。
イベント フレームワークを使用すると、ソリューション アーキテクトと開発者は、特定のイベントが発生したときに実行されるカスタム コードまたはプロセスを登録できます。 このフレームワークはカスタム プラグインをトリガーするためによく使用されますが、他のシステムとのアウトバウンド統合も容易に行うことができます。
イベント フレームワークを効果的に使用するには、以下の点を理解しておく必要があります。
- 利用可能なイベント タイプ
- イベントの処理方法
- 各ステージで使用可能案データ
- 適用される時間およびリソースの制限
- パフォーマンスの監視手法
フレームワークでは、次の 4 つの処理ステージがサポートされます。
- 事前検証 – メイン操作およびセキュリティ チェックの前に発生します。 操作を早期に検証またはキャンセルする場合に、このステージを使用します。
- 事前操作 – 操作がコミットされる前にトランザクション スコープ内で実行されます。 データを変更する場合に、このステージを使用します。
- メイン操作 – 内部操作用に予約されており、カスタム API と仮想テーブルでのみサポートされます。
- 事後操作 – 操作が完了した後、トランザクション内で実行されます。 アウトバウンド統合によく使用されます。
注
統合では通常、非同期実行による事後操作ステージが使用されます。
イベント フレームワークでは、以下をトリガーできます。
- プラグイン
- 従来型のワークフロー
- Power Automate クラウド フロー
- Azure Service Bus および Event Hubs のメッセージ
- Webhook
イベントとバッチ
ソリューション アーキテクトは、アウトバウンド データのシナリオをイベント駆動型またはバッチ ベースとして分類する必要があります。 次の図は、この 2 つのアプローチを比較したものです。
プッシュ パターン
プッシュ パターンは、イベント ベースの処理によく使用されます。 このモデルでは、Dataverse のイベントによって、外部システムにデータを送信するプロセスがトリガーされます。
パフォーマンスの問題と密結合を回避するには、Dataverse からトリガーされる外部呼び出しが最適化され、非ブロッキングであることを確認します。
重要
プラグインは、2 分のタイムアウトの対象になります。 長時間実行されるタスクには、非同期処理を使用します。
プル パターン
プル パターンは、スケジュールに従って、または外部イベントに応じて、Dataverse からのデータ取得を開始する外部システムに依存します。
注
Power Automate の繰り返しトリガーは、プル パターンの実装でよく使用されます。
変更追跡
Dataverse の変更追跡機能により、前回の同期以降に変更されたレコードを識別して、効率的な同期が可能になります。
テーブルで変更追跡を有効にすると、変更された行のみを取得できるため、データ転送が最小限に抑えられます。
注
変更追跡は、各テーブルに対して明示的に有効にする必要があります。
Azure 統合
Dataverse は、イベント フレームワークを通じて Azure サービスとのアウトバウンド統合をサポートします。 次の図は、これらの統合ポイントを示しています。
Azure Service Bus
Dataverse は、Microsoft Azure Service Bus にメッセージを公開し、システム間のセキュアで分離された通信を可能にします。 利点は次のとおりです。
- ワーカー プロセス間の負荷分散
- サービス境界を越えたセキュアなルーティングとメッセージ転送
- 高信頼性トランザクション ワークフローの調整
リスナー アプリケーション (Azure Logic Apps や Azure Function など) は、Service Bus からメッセージを受信し、イベント コンテキスト (テーブル名、レコード ID、開始ユーザー、データの変更など) に基づいてメッセージを処理します。
統合ステップには、次のものが含まれます。
- プラグイン登録ツールを使用して、Dataverse に Azure Service Bus エンドポイントを登録する
- データ イベント (レコード作成など) にメッセージを投稿する手順を定義する
リスナーの実装には、以下が含まれます。
- Service Bus からメッセージをポーリングする C# アプリケーション
- 新しいメッセージによってトリガーされる Azure Logic Apps
- 投稿されたメッセージに応答する Azure Functions
Azure Service Bus は、受信側システムの可用性が限られている場合や、大量のメッセージを抑制する必要がある場合に最適です。
メッセージ転記方法:
- 構成ベース (コードなし) - イベント コンテキストを Service Bus に送信するステップを定義します。
- カスタム (コード) – カスタマイズされたメッセージを Service Bus に投稿するプラグインを開発して登録します。
ユース ケースは以下のとおりです。
- メッセージング機能を備えたスケーラブルなクラウド アプリを構築する
- メッセージ キューを使用してバースト トラフィックを管理する
- 独立したスケーリングのためにシステムを切り離す
- 複数のコンシューマーに対する順序付けされたメッセージ配信をサポートする
Azure Relay
Azure Relay を使用すると、ファイアウォール ポートを開いたり、ネットワーク インフラストラクチャを変更したりすることなく、クラウド サービスとオンプレミス サービス間のセキュアな双方向通信が可能になります。
Relay では、次のようなシナリオがサポートされます。
- 一方向および要求/応答メッセージング
- インターネット スコープのイベント配信のための公開/サブスクライブ
- ネットワーク境界を越えたソケット通信
重要
Azure Relay を使用すると、接続されたシステムは、ネットワークに直接アクセスすることなく、セキュア チャネルを介して応答と確認応答を交換できます。
Azure Event Hubs
Azure Event Hubs は、1 秒あたり数百万件のイベントを処理できる高スループットのイベント インジェスト サービスです。
ビッグ データ ストリーミングに適しており、リアルタイム分析ソリューションと統合されます。 Event Hubs は、次の目的で使用します。
- 複数のシステムにイベントをブロードキャストする
- コンシューマー グループ経由でメッセージをフィルター処理する
- Microsoft Power BI などのサービスにイベントをストリーミングする
注
Azure Service Bus のトピックは、メッセージのフィルター処理と配信に関して同様の機能を提供します。
Webhooks と Azure Functions
Webhook は、Dataverse を外部サービスと統合するための軽量な HTTP ベースのパターンを提供します。
プラグイン登録ツールを使用して登録された Webhook は、イベントによってトリガーされると、JSON ペイロードを含む POST 要求を外部エンドポイントに送信します。
Webhook:
- 同期ステップと非同期ステップの両方をサポートする
- プラットフォーム間で標準の Web テクノロジを使用する
- 認証ヘッダーまたはクエリ文字列トークンで保護可能
Azure Functions は、スケーラブルな統合ロジックを実装するための Webhook エンドポイントとして機能できます。
Webhook または Service Bus の選択
| 機能 | Webhook | Azure Service Bus |
|---|---|---|
| スケーラビリティ | エンドポイントの容量によって制限される | スループットの高いキュー |
| メッセージの永続性 | カスタム再試行が必要 | 組み込みのキューおよび再試行 |
| 同期サポート | 同期および非同期をサポート | 非同期のみ |
| 簡単さ | 軽量 | エンタープライズ レベル |
| ホスト | 任意の Web アプリ | Azure インフラストラクチャ |
プロセス統合: Power Automateと Azure Logic Apps の比較
Power Automate クラウド フローと Azure Logic Apps は共通のランタイムを共有していますが、機能とユース ケースは異なります。
Power Automate:
- 高度な Dataverse コネクタのサポートが含まれる
- ソリューションの一部としてパッケージ化可能
- デスクトップ フローによるロボティック プロセス オートメーション (RPA) がサポートされる
- 承認と通知機能が組み込まれている
- 月間フロー実行制限の対象となる
Azure Logic Apps:
- エンタープライズ統合 (EDI を含む) 向けに設計されている
- スループットとパフォーマンスが高い
- Azure ツールによる堅牢なエラー処理と監視がサポートされる
- Power Platform ソリューション内ではパッケージ化されない
- Azure サブスクリプションによる消費ベースの価格または固定価格が使用される