Azure IoT Suite の構成済みソリューションとは

Azure IoT Suite の構成済みソリューションとは、サブスクリプションを使用して Azure にデプロイできる一般的な IoT ソリューション パターンの実装です。 構成済みソリューションは次の用途で使用できます。

  • 独自の IoT ソリューションの開始点として。
  • IoT ソリューションの設計と開発で一般的なパターンについて学習するため。

構成済みの各ソリューションは、シミュレートされたデバイスを使用してテレメトリを生成することができる、完全なエンド ツー エンドの実装です。

完全なソース コードをダウンロードして、特定の IoT 要件を満たすようにソリューションをカスタマイズして拡張することができます。

次の表は、ソリューションが特定の IoT 機能にどのようにマップされるかを示しています。

解決策 データ インジェスト デバイス ID デバイス管理 コマンドと制御 ルールとアクション 予測的分析
リモート監視 はい はい はい はい はい -
予測メンテナンス はい はい - はい はい はい
コネクテッド ファクトリ はい はい はい はい はい -
  • データの取り込み: クラウドへの大規模なデータの取り込み。
  • "デバイス ID": 一意のデバイス ID を管理し、ソリューションへのデバイス アクセスを制御します。
  • "デバイス管理": デバイス メタデータの管理し、デバイスの再起動、ファームウェアのアップグレードなどの操作を実行します。
  • "コマンドと制御": デバイスでアクションを実行するには、クラウドからデバイスにメッセージを送信します。
  • "ルールとアクション": 特定のデバイスからクラウドへのデータを操作するには、ソリューション バックエンドでルールを使用します。
  • "予測分析": ソリューション バックエンドはデバイスからクラウドへのデータを分析して、特定のアクションを実行するタイミングを予測します。 たとえば、航空機エンジンのテレメトリを分析して、エンジンのメンテナンス時期を判断できます。

リモート監視の構成済みソリューションの概要

この記事では、リモート監視の構成済みソリューションについて説明します。このソリューションを選択したのは、他のソリューションと共通する一般的な設計要素がたくさん使用されているためです。

次の図は、リモート監視ソリューションの主な要素を示しています。 以降のセクションでは、これらの要素について詳しく説明します。

Remote Monitoring preconfigured solution architecture

デバイス

リモート監視の構成済みソリューションをデプロイすると、冷却デバイスをシミュレートする 4 つのシミュレートされたデバイスがソリューション内で事前にプロビジョニングされます。 これらのシミュレートされたデバイスには、テレメトリを出力する温度と湿度モデルが組み込まれています。 シミュレートされたデバイスが組み込まれている目的を次に示します。

  • ソリューションを使用したエンド ツー エンドのデータ フローを示す。
  • テレメトリの便利なソースを提供する。
  • バックエンド開発者がソリューションをカスタム実装の開始点として使用する場合に、メソッドまたはコマンドのターゲットを提供する。

ソリューション内のシミュレートされたデバイスは、次のクラウドとデバイス間の通信に応答できます。

  • "メソッド (ダイレクト メソッド)": 双方向の通信メソッドで、接続されたデバイスが直ちに応答することが想定されます。
  • "コマンド (クラウドとデバイス間のメッセージ)": 一方向の通信メソッドで、デバイスが持続性のあるキューからコマンドを取得します。

このさまざまなアプローチの比較については、「cloud-to-device 通信に関するガイダンス」を参照してください。

構成済みソリューションの IoT Hub に初めて接続したデバイスは、デバイス情報メッセージをハブに送信します。 このメッセージには、デバイスが応答できるメソッドの一覧が列挙されています。 リモート監視の構成済みソリューションで、シミュレートされたデバイスがサポートするメソッドは次のとおりです。

  • "ファームウェア更新を開始": このメソッドはデバイスで非同期タスクを開始して、ファームウェア更新を実行します。 非同期タスクは、報告されたプロパティを使用して、ソリューション ダッシュボードに状態の更新を提供します。
  • "再起動": このメソッドにより、シミュレートされたデバイスが再起動されます。
  • "出荷時の設定にリセット": このメソッドにより、シミュレートされたデバイスで、出荷時の設定へのリセットがトリガーされます。

構成済みソリューションの IoT Hub に初めて接続したデバイスは、デバイス情報メッセージをハブに送信します。 このメッセージには、デバイスが応答できるコマンドの一覧が列挙されています。 リモート監視の構成済みソリューションで、シミュレートされたデバイスがサポートするコマンドは次のとおりです。

  • デバイスの ping: デバイスは、確認応答を伴って、このコマンドに応答します。 このコマンドは、デバイスがまだアクティブでリッスンしていることを確認するときに役に立ちます。
  • テレメトリの開始: テレメトリの送信を開始するようデバイスに指示します。
  • テレメトリの停止: テレメトリの送信を停止するようデバイスに指示します。
  • 設定点温度の変更: デバイスが送信するシミュレートされた温度テレメトリ値を制御します。 このコマンドは、バックエンド ロジックをテストするときに役に立ちます。
  • 診断テレメトリ: デバイスが外部温度をテレメトリとして送信するかどうかを制御します。
  • デバイス状態の変更: デバイスが報告するデバイスの状態のメタデータ プロパティを設定します。 このコマンドは、バックエンド ロジックをテストするときに役に立ちます。

同じテレメトリを出力し、同じメソッドとコマンドに応答するシミュレートされたデバイスをソリューションに追加できます。

ソリューションは、コマンドとメソッドに応答するだけでなく、デバイス ツインを使用します。 デバイスは、プロパティ値をソリューション バックエンドにレポートするときに、デバイス ツインを使用します。 ソリューション ダッシュボードは、デバイス上で新しい必要なプロパティ値に設定するときに、デバイス ツインを使用します。 たとえば、ファームウェアの更新プロセス中、シミュレートされたデバイスは、レポートされたプロパティを使用して更新の状態をレポートします。

IoT Hub

この構成済みソリューションの IoT Hub インスタンスは、一般的な IoT ソリューション アーキテクチャクラウド ゲートウェイに相当します。

IoT Hub は、1 つのエンドポイントのデバイスからテレメトリを受信します。 また、IoT Hub は、デバイス固有のエンドポイントも保持します。各デバイスは、送信されたコマンドをエンドポイントで取得できます。

IoT Hub は、受信したテレメトリをサービス側のテレメトリ読み取りエンドポイントを介して使用できるようにします。

IoT Hub のデバイス管理機能を使用すると、ソリューション ポータルからデバイスのプロパティを管理し、次の操作を実行するジョブのスケジュールを設定できます。

  • デバイスの再起動
  • デバイスの状態の変更
  • ファームウェアの更新

Azure Stream Analytics

構成済みソリューションでは、次の 3 つの Azure Stream Analytics (ASA) ジョブを使用して、デバイスのテレメトリ ストリームをフィルターします。

  • "DeviceInfo ジョブ" - イベント ハブにデータを出力します。このイベント ハブにより、デバイス登録固有のメッセージが、ソリューションのデバイス レジストリにルーティングされます。 このデバイス レジストリは、Azure Cosmos DB のデータベースです。 これらのメッセージは、デバイスが最初に接続するとき、またはデバイス状態の変更コマンドに応答して送信されます。
  • Telemetry ジョブ - Azure Blob Storage にコールド ストレージの未加工のテレメトリをすべて送信し、ソリューションのダッシュボードに表示されるテレメトリの集計を行います。
  • Rules ジョブ - テレメトリ ストリームをフィルターして、いずれかのルールのしきい値を超える値を絞り込み、そのデータをイベント ハブに出力します。 ルールが実行されると、このイベントは、ソリューション ポータルのダッシュボード ビューに、アラーム履歴テーブルの新しい行として表示されます。 このルールは、ソリューション ポータルのルール ビューおよびアクション ビューで定義された設定に基づいて、アクションをトリガーすることもできます。

この構成済みソリューションでは、ASA ジョブは一般的な IoT ソリューション アーキテクチャIoT ソリューション バックエンドの一部です。

イベント プロセッサ

この構成済みソリューションでは、イベント プロセッサは一般的な IoT ソリューション アーキテクチャIoT ソリューション バックエンドの一部です。

DeviceInfoRules の各 ASA ジョブは、他のバックエンド サービスに配信するために出力をイベント ハブに送信します。 このソリューションでは、Web ジョブで実行される EventProcessorHost インスタンスを使用して、これらのイベント ハブからメッセージを読み取ります。 EventProcessorHost は次のように動作します。

  • DeviceInfo データを使用して、Cosmos DB データベースのデバイス データを更新します。
  • Rules データを使用して、ロジック アプリを呼び出し、ソリューション ポータルのアラートの表示を更新します。

デバイス ID レジストリ、デバイス ツイン、Cosmos DB

すべての IoT Hub には、デバイス キーを格納するデバイス ID レジストリが含まれています。 IoT Hub は、この情報を使用してデバイスを認証します (ハブに接続する前に、デバイスが登録され、有効なキーを持っている必要があります)。

デバイス ツインは、IoT Hub によって管理される JSON ドキュメントです。 デバイスのデバイス ツインには次が含まれています。

  • デバイスによってハブに送信された報告済みプロパティ。 このプロパティは、ソリューション ポータルに表示できます。
  • デバイスに送信する必要なプロパティ。 このプロパティは、ソリューション ポータルで設定できます。
  • デバイス ツインにのみ存在し、デバイスには存在しないタグ。 このタグを使用して、ソリューション ポータルのデバイスの一覧にフィルターを適用できます。

このソリューションでは、デバイス ツインを使用してデバイス メタデータを管理します。 また、Cosmos DB データベースを使用して、ソリューション固有の追加のデバイス データ (各デバイスがサポートするコマンドやコマンドの履歴など) を格納することもできます。

このソリューションでは、デバイス ID レジストリの情報と Cosmos DB データベースのコンテンツの同期が維持されている必要もあります。 EventProcessorHost では、DeviceInfo Stream Analytics ジョブのデータを使用して、同期を管理します。

ソリューション ポータル

solution portal

ソリューション ポータルは、構成済みソリューションの一部としてクラウドにデプロイされている Web ベースの UI です。 ソリューション ポータルでは、次の操作を実行できます。

  • ダッシュボードにテレメトリとアラームの履歴を表示します。
  • 新しいデバイスをプロビジョニングします。
  • デバイスを管理し、監視します。
  • 特定のデバイスにコマンドを送信します。
  • 特定のデバイスでメソッドを呼び出します。
  • ルールとアクションを管理します。
  • 1 台以上のデバイスで実行するジョブのスケジュールを設定します。

この構成済みソリューションでは、ソリューション ポータルは IoT ソリューション バックエンドの一部です。また、一般的な IoT ソリューション アーキテクチャ処理とビジネスの接続に含まれています。

次の手順

IoT ソリューション アーキテクチャの詳細については、「Microsoft Azure IoT Reference Architecture (Microsoft Azure IoT リファレンス アーキテクチャ)」を参照してください。

構成済みソリューションについて理解した後は、構成済みソリューションの使用に関するチュートリアルを参照して、"リモート監視" の構成済みソリューションをデプロイしましょう。