公式ドキュメントを読んで机上で整理したものなので、実際の動作と異なる可能性があります。
IoT HubのエンドポイントはDevice, ServiceとManagementに関するものがあります。
このうちのAzure IoT HubとDeviceの通信に使用する、Deviceのエンドポイントを整理しました。(上図の左側)
Device to Cloud
DeviceからCloud(IoT Hub)に情報を送信する手段は、3つ用意されています。
メッセージ
- 時系列データやアラートの送信に使用します。
- エンドポイントは/devices/{deviceId}/messages/events。
- IoT Hubに最大7日間、保存することができます。
- 1つのメッセージは最大256KB。
レポートプロパティ(報告プロパティ)
- 動作状態の送信に使用します。
- エンドポイントは$iothub/twin/PATCH/properties/reported/?$rid={request id}。
- IoT Hubのデバイスツインに保存。
- レポートプロパティは最大8KB。
ファイルのアップロード
- 大きなデータの送信に使用します。
- IoT Hubにファイルのアップロード要求を送信してから、Azure Storage SDKでファイルをアップロードします。
- Azure Blob Storageに保存。
- ファイルの最大はAzure Blob Storageによって制限されます。
Cloud to Device
Cloud(IoT Hub)からDeviceに情報を受信する手段は、3つ用意されています。
メッセージ
- IoT Hubに溜まっているメッセージを受信します。
- エンドポイントはdevices/{device_id}/messages/devicebound/#。
- IoT Hubに最大48時間、保存することができます。
- 1つのメッセージは最大64KB。
デザイアープロパティ(必要プロパティ)
- 動作指示設定値の受信に使用します。
- エンドポイントは$iothub/twin/PATCH/properties/desired/?$version={new version}。
- IoT Hubのデバイスツインに保存。
- デザイナープロパティは最大8KB。
ダイレクトメソッド
- 即時指示の受信に使用します。
- エンドポイントは$iothub/methods/POST/#。
- 最大8KB。