モノのインターネット (IoT) ソリューションでは、IoT デバイスは イベント (通知、受信確認、テレメトリ) をアプリケーションに送信して、分析情報を取得します。 アプリケーションでは、処理のために特定のイベントのサブセットや、さまざまなエンドポイントでの保存が必要になる場合があります。 これらのイベントは、さらに処理するために別のサービスにルーティングする必要がある場合もあります。 IoT ソリューションがスケールアウトされると、デバイスの数、イベントの量、イベントの種類、各種サービスも変化します。 このパターンに対応するには、柔軟、スケーラブル、一貫性があり、信頼性の高い方法でイベントをルーティングする必要があります。
考えられるユース ケース
小売店では、冷凍食品セクションの冷蔵庫を監視しています。
- 冷蔵庫の温度が事前に決定されたしきい値を超えたときにアラートが送信されます。 これらの特定のイベントを警告システムに送信するためのしきい値の規則を使用して、ルーティング規則を作成できます。
- データ サイエンス チームは、冷蔵庫が故障する前に問題を特定するための異常検出モデルを構築しています。 メッセージ ルーティング規則により、データ サイエンス チームがトレーニングとモデリング向けに特別に使用するストレージ アカウントに、すべての未加工のテレメトリ データを送信できます。
このシナリオは、小売業界、エネルギー業界、環境業界に適用されます。
Architecture
このアーキテクチャの Visio ファイルをダウンロードします。
IoT プラットフォームでは、規則を作成して、イベントの詳細なルーティングを行うことができます。 IoT プラットフォームでは、1 つまたは複数の規則を構成できます。 規則は、イングレス イベントに適用され、特定のエンドポイントにルーティングされます。
特性
このパターンを使用する場合の考慮事項のいくつかを次に示します。
エンドポイントのスループット:イベントを受け取るエンドポイントは、ルーティングを介して送信されるイベントのイングレスを処理できる必要があります。 使用するまで、エンドポイント サービスにデータを取り込み、保存する容量があることを確認します。
イベントの形式:ルーティングをスケーラブルで柔軟なものにするために、イベントは、プロトコル間での相互運用性を確保するために共通の形式にする必要があります。
イベント処理:イベントが、同じエンドポイントを指している複数のルートと一致する場合、そのエンドポイントにメッセージを 1 回だけ送信する必要があります。 また、このような状況では、メッセージの順序を保証することも重要です。
イベントの重複:メッセージの重複を処理するには、発生ポイントでメッセージのアプリケーション プロパティに一意識別子をスタンプすることをお勧めします。これは通常、デバイスまたはモジュールです。 メッセージを消費するサービスでは、その後この識別子を使用して重複するメッセージを処理できます。
フォールバック ルート:どの規則とも一致しないイベントは、適切に対処し、イベントが失われないように、フォールバック ルートに配置する必要があります。
非テレメトリ イベント:IoT ソリューションには、デバイスの状態の変更やデバイスのライフサイクル イベントなど、さまざまな種類のイベントがあります。 イベント ルートは、このような非テレメトリ イベントに規則を取り込んで適用して、自動化と監視を可能にする必要があります。
このパターンを使用する状況:
デバイスのテレメトリ メッセージ、デバイスのライフサイクル イベント、またはデバイス ツインの変更イベントを、規則によって決定される特定のエンドポイントに送信します。
特定の規則を適用してイベントをフィルター処理します。
このパターンは次の場合は推奨されません。
- 時系列データの複雑なリアルタイム データ分析に基づくルーティング。 たとえば、15 分間の平均テレメトリ データを比較している場合です。 リアルタイムのデータ分析が必要な場合は、ホット パス データにリアルタイム分析サービスを使用します。