cloud-to-device 通信に関するガイダンスCloud-to-device communications guidance

IoT Hub では、デバイス アプリがバックエンド アプリに機能を公開するための 3 つのオプションがあります。IoT Hub provides three options for device apps to expose functionality to a back-end app:

  • ダイレクト メソッド: 結果を即座に確認することが求められる通信用。Direct methods for communications that require immediate confirmation of the result. ダイレクト メソッドは、対話型のデバイス制御によく使用されます (ファンの電源を投入するなど)。Direct methods are often used for interactive control of devices such as turning on a fan.

  • デバイス ツインの必要なプロパティ: デバイスを特定の状態に置いておくために長時間実行されるコマンド用。Twin's desired properties for long-running commands intended to put the device into a certain desired state. たとえば、テレメトリの送信間隔を 30 分に設定します。For example, set the telemetry send interval to 30 minutes.

  • cloud-to-device メッセージ: デバイス アプリに対する一方向の通知用。Cloud-to-device messages for one-way notifications to the device app.

注意

この記事で説明される機能は、IoT Hub の Standard レベルでのみ利用できます。The features described in this article are only available in the standard tier of IoT hub. IoT Hub の Basic レベルおよび Standard レベルについて詳しくは、適切な IoT Hub レベルの選び方に関するページを参照してください。For more information about the basic and standard IoT Hub tiers, see How to choose the right IoT Hub tier.

さまざまな cloud-to-device 通信オプションの詳細な比較を次に示します。Here is a detailed comparison of the various cloud-to-device communication options.

ダイレクト メソッドDirect methods デバイス ツインの必要なプロパティTwin's desired properties クラウドからデバイスへのメッセージCloud-to-device messages
シナリオScenario すぐに確認する必要があるコマンド (例: ファンをオンにする)。Commands that require immediate confirmation, such as turning on a fan. デバイスを特定の状態に置いておくために長時間実行されるコマンド。Long-running commands intended to put the device into a certain desired state. たとえば、テレメトリの送信間隔を 30 分に設定します。For example, set the telemetry send interval to 30 minutes. デバイス アプリに対する一方向の通知です。One-way notifications to the device app.
データ フローData flow 双方向。Two-way. デバイス アプリは、メソッドにすぐに応答できます。The device app can respond to the method right away. ソリューション バックエンドは、コンテキストから要求の結果を受信します。The solution back end receives the outcome contextually to the request. 一方向。One-way. デバイス アプリは、プロパティが変更された通知を受信します。The device app receives a notification with the property change. 一方向。One-way. デバイス アプリは、メッセージを受信します。The device app receives the message
持続性Durability 切断されているデバイスとは通信しません。Disconnected devices are not contacted. ソリューション バックエンドには、デバイスが接続されていないことが通知されます。The solution back end is notified that the device is not connected. プロパティの値は、デバイス ツインに保持されます。Property values are preserved in the device twin. デバイスは、次の再接続時にそれを読み取ります。Device will read it at next reconnection. プロパティの値は IoT Hub クエリ言語を使用して取得できます。Property values are retrievable with the IoT Hub query language. メッセージは、IoT Hub によって最大 48 時間保持できます。Messages can be retained by IoT Hub for up to 48 hours.
ターゲットTargets deviceId を使用する場合は 1 台のデバイス、jobs を使用する場合は複数台のデバイス。Single device using deviceId, or multiple devices using jobs. deviceId を使用する場合は 1 台のデバイス、jobs を使用する場合は複数台のデバイス。Single device using deviceId, or multiple devices using jobs. deviceId による 1 台のデバイス。Single device by deviceId.
SizeSize ダイレクト メソッドの最大ペイロード サイズは 128 KB。Maximum direct method payload size is 128 KB. 必要なプロパティの最大サイズは 8 KB です。Maximum desired properties size is 8 KB. 最大 64 KB のメッセージ。Up to 64 KB messages.
頻度Frequency 高。High. 詳細については、IoT Hub の制限に関するページを参照してください。For more information, see IoT Hub limits. 中。Medium. 詳細については、IoT Hub の制限に関するページを参照してください。For more information, see IoT Hub limits. 低。Low. 詳細については、IoT Hub の制限に関するページを参照してください。For more information, see IoT Hub limits.
ProtocolProtocol MQTT または AMQP を使用して利用できます。Available using MQTT or AMQP. MQTT または AMQP を使用して利用できます。Available using MQTT or AMQP. すべてのプロトコルで使用できます。Available on all protocols. HTTPS を使う場合、デバイスはポーリングを行う必要があります。Device must poll when using HTTPS.

ダイレクト メソッド、必要なプロパティ、および cloud-to-device メッセージの使用方法については、次のチュートリアルを参照してください。Learn how to use direct methods, desired properties, and cloud-to-device messages in the following tutorials: