IoT Hub では、デバイス アプリがバックエンド アプリに機能を公開するための 3 つのオプションがあります。
結果の即時確認を必要とする通信のダイレクト メソッド。 ダイレクト メソッドは、対話型のデバイス制御によく使用されます (ファンの電源を投入するなど)。
デバイスを特定の目的の状態に することを目的とした、実行時間の長いコマンドに対するデバイス ツインの必要なプロパティ。 たとえば、テレメトリの送信間隔を 30 分に設定します。
クラウドからデバイスへのメッセージは、デバイスアプリへの一方向通知に使用されます。
Azure IoT プラグ アンド プレイでこれらのオプションを使用して IoT プラグ アンド プレイ デバイスを制御する方法については、IoT プラグ アンド プレイ サービス開発者ガイドを参照してください。
注
この記事で説明されている機能は、Standard レベルの IoT Hub でのみ使用できます。 Basic および Standard/Free IoT Hub レベルの詳細については、「ソリューションに適した IoT Hub レベルとサイズを選択する」を参照してください。
さまざまなクラウドからデバイスへの通信オプションの詳細な比較を次に示します。
カテゴリ | ダイレクト メソッド | デバイス ツインの必要なプロパティ | クラウドからデバイスへのメッセージ |
---|---|---|---|
シナリオ | すぐに確認する必要があるコマンド (例: ファンをオンにする)。 | デバイスを特定の状態に置いておくために長時間実行されるコマンド。 たとえば、テレメトリの送信間隔を 30 分に設定します。 | デバイス アプリに対する一方向の通知です。 |
データ フロー | 双方向。 デバイス アプリは、メソッドにすぐに応答できます。 ソリューション バックエンドは、コンテキストから要求の結果を受信します。 | 一方向。 デバイス アプリは、プロパティが変更された通知を受信します。 | 一方向。 デバイス アプリがメッセージを受信する |
耐久性 | 切断されたデバイスには連絡が取れない。 ソリューション バックエンドには、デバイスが接続されていないことが通知されます。 | プロパティの値は、デバイス ツインに保持されます。 デバイスは、次の再接続時にそれを読み取ります。 プロパティ値は、 IoT Hub クエリ言語で取得できます。 | IoT Hub では、メッセージを最大 48 時間保持できます。 |
目標値 | deviceId を使用する単一デバイス、またはジョブを使用する複数のデバイス。 | deviceId を使用する単一デバイス、またはジョブを使用する複数のデバイス。 | deviceId による単一デバイス。 |
サイズ | ダイレクト メソッドのペイロードの最大サイズは、要求に 128 KB、応答に 128 KB です。 | 必要なプロパティの最大サイズは 32KB です。 | 最大 64 KB のメッセージ。 |
頻度 | 高。 詳細については、IoT Hub のクォータと調整に関するページを参照してください。 | ミディアム 詳細については、IoT Hub のクォータと調整に関するページを参照してください。 | 低い。 詳細については、IoT Hub のクォータと調整に関するページを参照してください。 |
プロトコル | MQTT または AMQP を使用して利用できます。 | MQTT または AMQP を使用して利用できます。 | すべてのプロトコルで使用できます。 HTTPS を使う場合、デバイスはポーリングを行う必要があります。 |
ダイレクト メソッド、必要なプロパティ、およびクラウドからデバイスへのメッセージを使用する方法については、次のチュートリアルを参照してください。