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