ソリューションのアイデア
このアーティクルはソリューションのアイデアです。 このコンテンツにさらに多くの情報 (想定されるユース ケース、代替サービス、実装に関する考慮事項、価格ガイダンスなど) の掲載をご希望の方は、GitHub のフィードバックでお知らせください。
この記事では、仮想ネットワーク内で、データのストリームを取り込んで処理し、その結果をデータベースに書き込む、サーバーレス イベントドリブン アーキテクチャについて説明します。
アーキテクチャ
データフロー
- VNet 統合は、すべての Azure リソースを Azure プライベート エンドポイントの背後に置くために使用されます。
- イベントが入力イベント ハブに到達します。
- バッチ解除とフィルター処理の Azure 関数がトリガーされ、イベントを処理します。 この手順では、出力イベント ハブに送信する前に、必要のないイベントをフィルター処理で除外し、受信したイベントをバッチ解除します。
- バッチ解除とフィルター処理の Azure 関数でイベントを正常に保存できなかった場合、イベントは配信不能イベント ハブ 1 に送信されます。
- 出力イベント ハブに到達したイベントにより、変換の Azure 関数がトリガーされます。 この Azure 関数により、イベントは Azure Cosmos DB インスタンス用のメッセージに変換されます。
- イベントが Azure Cosmos DB データベースに保存されます。
- 変換の Azure 関数でイベントを正常に保存できなかった場合、イベントは配信不能イベント ハブ 2 に保存されます。
注意
わかりやすくするために、サブネットは図に表示されていません。
Components
- Azure プライベート エンドポイントは、Azure Private Link を使用するサービスに、プライベートで安全に接続するためのネットワーク インターフェイスです。 プライベート エンドポイントでは、自分の VNet からのプライベート IP アドレスを使用して、サービスを実質的に VNet に取り込みます。
- Event Hubs は、データ ストリームを取り込みます。 Event Hubs は、高スループットのデータ ストリーミング シナリオ用に設計されています。
- Azure Functions はサーバーレス コンピューティングの 1 つのオプションです。 ひとまとまりのコード ("関数") がトリガーによって呼び出されるイベント ドリブン モデルが使用されます。
- Azure Cosmos DB は、サーバーレスの使用量ベース モードで使用できるマルチモデルのデータベース サービスです。 このシナリオでは、Azure Cosmos DB for NoSQL を使って、イベント処理関数によって JSON レコードが格納されます。
シナリオの詳細
このソリューション アイデアでは、データのストリームを取り込み、データを処理して、その結果をバックエンド データベースに書き込む、サーバーレス イベント ドリブン アーキテクチャの 1 つのバリエーションについて説明します。 この例では、すべての Azure リソースがプライベート エンドポイントの背後に置かれている仮想ネットワーク内にソリューションがホストされています。
サーバーレス イベント処理の基本的な概念、考慮事項、方法の詳細については、「サーバーレスなイベント処理」の参照アーキテクチャを参照してください。
考えられるユース ケース
エンドツーエンドのイベント ストリーム処理パターンを実装する一般的なユース ケースには、Event Hubs のストリーミング インジェスト サービスにより、イベントを毎秒受信して、処理するというものがあります。これには、Event Hubs によってトリガーされる高度にスケーラブルな関数によって実装される、バッチ解除と変換のロジックが使用されます。
共同作成者
この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。
プリンシパル作成者:
- Rajasa Savant | シニア ソフトウェア開発エンジニア
パブリックでない LinkedIn プロファイルを表示するには、LinkedIn にサインインします。
次の手順
- プライベート エンドポイント接続を管理する
- プライベート エンドポイントのクイックスタート ガイド:
- Azure Event Hubs のドキュメント
- Azure Functions の概要
- Azure Functions のドキュメント
- Azure Cosmos DB の概要
- Azure Cosmos DB で API を選択する
関連リソース
- 「サーバーレスなイベント処理」は、この種類の一般的なアーキテクチャを詳述する参照アーキテクチャです。コード サンプルと重要な考慮事項について説明しています。
- 「サーバーレスなイベント処理の監視」では、このようなサーバーレスなイベントドリブン アーキテクチャの監視に関する概要とガイダンスを提供しています。
- 「Event Hubs を使用したサーバーレス イベント処理でのバッチ解除とフィルター処理」では、アーキテクチャのこの部分の動作についての詳細を説明しています。
- 「イベント ストリーム処理での Azure Kubernetes」では、KEDA スケーラーを使用して Azure Kubernetes 上で実行される、サーバーレス イベント ドリブン アーキテクチャの 1 つのバリエーションについて説明します。