次の方法で共有


IoT Hub データ プレーン MQTT 5 API リファレンス (非推奨)

このドキュメントでは、IoT Hub データ プレーン API のバージョン 2.0 (api-version: 2020-10-01-preview) で使用できる操作を定義します。

IoT Hub の MQTT 5 のサポートは非推奨となり、IoT Hub では MQTT の機能サポートが制限されます。 ソリューションに MQTT v3.1.1 または v5 のサポートが必要な場合は、Azure Event Grid での MQTT サポートをお勧めします。 詳細については、IoT Hub と Event Grid での MQTT サポートの比較に関するページを参照してください。

オペレーションズ

ツインを取得する

ツインの取得の状態

依頼

トピック名:$iothub/twin/get

プロパティ: なし

ペイロード: 空

成功時の応答

プロパティ: なし

ペイロード:ツイン

代替応答

ステータス 名前 説明
0100 無効な要求 操作メッセージの形式が正しくないため、処理できません。
0101 権限なし クライアントにはこの操作を実行する権限がありません。
0102 禁じられた 操作は許可されていません。
0501 Throttled SKU あたりの要求レートが高すぎます
0502 クォータを超過した 現在の SKU ごとの 1 日あたりのクォータを超えています
0601 サーバー エラー 内部サーバー エラー
0602 タイムアウト 操作が完了する前にタイムアウトになりました
0603 サーバー ビジー サーバーがビジー状態です

擬似コードのサンプル


-> PUBLISH
    QoS: 0
    Topic: $iothub/twin/get
<- PUBLISH
    QoS: 0
    Topic: $iothub/responses

パッチ ツインの報告

パッチ ツインの報告の状態

依頼

トピック名:$iothub/twin/patch/reported

[プロパティ] :

名前 タイプ 必須 説明
if-version u64 いいえ

ペイロード:TwinState

成功時の応答

[プロパティ] :

名前 タイプ 必須 説明
バージョン u64 はい パッチが適用された後に報告された状態のバージョン

ペイロード: 空

代替応答

ステータス 名前 説明
0104 Precondition Failed 前提条件が満たされなかったため、要求が取り消されました
0100 無効な要求 操作メッセージの形式が正しくないため、処理できません。
0101 権限なし クライアントにはこの操作を実行する権限がありません。
0102 禁じられた 操作は許可されていません。
0501 Throttled SKU あたりの要求レートが高すぎます
0502 クォータを超過した 現在の SKU ごとの 1 日あたりのクォータを超えています
0601 サーバー エラー 内部サーバー エラー
0602 タイムアウト 操作が完了する前にタイムアウトになりました
0603 サーバー ビジー サーバーがビジー状態です

擬似コードのサンプル


-> PUBLISH
    QoS: 0
    Topic: $iothub/twin/patch/reported
    [if-version: <u64>]
<- PUBLISH
    QoS: 0
    Topic: $iothub/responses

コマンドを受信する

コマンドを受信して処理する

メッセージ

トピック名:$iothub/commands

[プロパティ] :

名前 タイプ 必須 説明
sequence-no u64 はい メッセージのシーケンス番号
enqueued-time time はい メッセージがシステムで受信されたときのタイムスタンプ
delivery-count u32 はい メッセージ配信が試行された回数
creation-time time いいえ メッセージが作成されたときのタイムスタンプ (送信者によって提供)
message-id いいえ メッセージ ID (送信者によって提供)
user-id いいえ ユーザー ID (送信者によって提供)
correlation-id いいえ 相関 ID (送信者によって提供)
コンテンツ タイプ いいえ ペイロードのコンテンツ タイプを決定します
content-encoding いいえ ペイロードのコンテンツのエンコードを決定します

ペイロード: 任意のバイト シーケンス

成功の受信確認

クライアントによる処理のためにコマンドが受け入れられたことを示します

プロパティ: なし

ペイロード: 空

代替受信確認

理由コード ステータス 名前 説明
131 0603 放棄する 現時点ではコマンドは処理されず、後に再配信される必要があることを示します。
131 0100 リジェクト クライアントがコマンドを拒否し、再試行は行うべきでないことを示します。

擬似コードのサンプル


-> SUBSCRIBE
    - Topic: $iothub/commands
      QoS: 1
<- PUBLISH
    QoS: 1
    Topic: $iothub/commands
    sequence-no: <u64>enqueued-time: <time>delivery-count: <u32>[creation-time: <time>][message-id: <string>][user-id: <string>][correlation-id: <string>][Content Type: <string>][content-encoding: <string>]
    Payload: ...

-> PUBACK

ダイレクト メソッドを受信する

ダイレクト メソッドの呼び出しを受信して処理する

依頼

トピック名:$iothub/methods/{name}

プロパティ: なし

ペイロード: 任意のバイト シーケンス

成功時の応答

[プロパティ] :

名前 タイプ 必須 説明
response-code u32 はい

ペイロード: 任意のバイト シーケンス

代替応答

ステータス 名前 説明
06A0 使用禁止 この接続を介してクライアントには到達できないことを示します。

擬似コードのサンプル


-> SUBSCRIBE
    - Topic: methods/{name}
      QoS: 0
<- SUBACK
<- PUBLISH
    QoS: 0
    Topic: $iothub/methods/{name}
-> PUBLISH
    QoS: 0
    Topic: $iothub/responses

ツインの望ましい状態の変更を受信する

ツインの望ましい状態の更新プログラムを受信する

メッセージ

トピック名:$iothub/twin/patch/desired

[プロパティ] :

名前 タイプ 必須 説明
バージョン u64 はい この更新プログラムに一致する望ましい状態のバージョン

ペイロード:TwinState

擬似コードのサンプル


-> SUBSCRIBE
    - Topic: $iothub/twin/patch/desired
      QoS: 0
<- PUBLISH
    QoS: 0
    Topic: $iothub/twin/patch/desired
    version: <u64>
    Payload: ...

テレメトリを送信する

テレメトリ チャネル (既定では Event Hubs、ルーティング構成を使用する場合はその他のエンドポイント) にメッセージを投稿します。

メッセージ

トピック名:$iothub/telemetry

[プロパティ] :

名前 タイプ 必須 説明
コンテンツ タイプ いいえ 投稿されたメッセージの content-type システム プロパティに変換します
content-encoding いいえ 投稿されたメッセージの content-encoding システム プロパティに変換します
message-id いいえ 投稿されたメッセージの message-id システム プロパティに変換します
user-id いいえ 投稿されたメッセージの user-id システム プロパティに変換します
correlation-id いいえ 投稿されたメッセージの correlation-id システム プロパティに変換します
creation-time time いいえ 投稿されたメッセージの iothub-creation-time-utc プロパティに変換します

ヒント

creation-time の形式は、タイムゾーン情報が含まれない UTC である必要があります。 たとえば、2021-04-21T11:30:16Z は有効で、2021-04-21T11:30:16-07:00 は無効です。

ペイロード: 任意のバイト シーケンス

成功の受信確認

メッセージがテレメトリ チャネルに正常に投稿されました

プロパティ: なし

ペイロード: 空

代替受信確認

理由コード ステータス 名前 説明
131 0100 無効な要求 操作メッセージの形式が正しくないため、処理できません。
135 0101 権限なし クライアントにはこの操作を実行する権限がありません。
131 0102 禁じられた 操作は許可されていません。
131 0601 サーバー エラー 内部サーバー エラー
151 0501 Throttled SKU あたりの要求レートが高すぎます
151 0502 クォータを超過した 現在の SKU ごとの 1 日あたりのクォータを超えています
131 0602 タイムアウト 操作が完了する前にタイムアウトになりました
131 0603 サーバー ビジー サーバーがビジー状態です

擬似コードのサンプル

-> PUBLISH
    QoS: 1
    Topic: $iothub/telemetry
    [Content Type: <string>]
    [content-encoding: <string>]
    [message-id: <string>]
    [user-id: <string>]
    [correlation-id: <string>]
    [creation-time: <time>]

<- PUBACK

応答

無効な要求

操作メッセージの形式が正しくないため、処理できません。

理由コード:131

状態:0100

[プロパティ] :

名前 タイプ 必須 説明
理由 いいえ メッセージに関して具体的に何が有効でないかについての情報が含まれます

ペイロード: 空

葛藤

操作は、実行中の別の操作と競合しています。

理由コード:131

状態:0103

[プロパティ] :

名前 タイプ 必須 説明
trace-id いいえ エラーに対するその他の診断との相関関係について ID を追跡します
理由 いいえ メッセージに関して具体的に何が有効でないかについての情報が含まれます

ペイロード: 空

禁じられた

操作は許可されていません。

理由コード:131

状態:0102

[プロパティ] :

名前 タイプ 必須 説明
理由 いいえ メッセージに関して具体的に何が有効でないかについての情報が含まれます

ペイロード: 空

権限なし

クライアントにはこの操作を実行する権限がありません。

理由コード:135

状態:0101

[プロパティ] :

名前 タイプ 必須 説明
trace-id いいえ エラーに対するその他の診断との相関関係について ID を追跡します

ペイロード: 空

見つかりません

要求されたリソースが存在しません

理由コード:131

状態:0504

[プロパティ] :

名前 タイプ 必須 説明
理由 いいえ メッセージに関して具体的に何が有効でないかについての情報が含まれます

ペイロード: 空

変更されていません

指定された前提条件に基づくリソース変更が行われませんでした。

理由コード:0

状態:0001

プロパティ: なし

ペイロード: 空

Precondition Failed

前提条件が満たされなかったため、要求が取り消されました

理由コード:131

状態:0104

プロパティ: なし

ペイロード: 空

クォータを超過した

現在の SKU ごとの 1 日あたりのクォータを超えています

理由コード:151

状態:0502

プロパティ: なし

ペイロード: 空

リソースを使い果たしました

リソースには操作を完了するための容量がありません

理由コード:131

状態:0503

[プロパティ] :

名前 タイプ 必須 説明
理由 いいえ メッセージに関して具体的に何が有効でないかについての情報が含まれます

ペイロード: 空

サーバー ビジー

サーバーがビジー状態です

理由コード:131

状態:0603

[プロパティ] :

名前 タイプ 必須 説明
trace-id いいえ エラーに対するその他の診断との相関関係について ID を追跡します

ペイロード: 空

サーバー エラー

内部サーバー エラー

理由コード:131

状態:0601

[プロパティ] :

名前 タイプ 必須 説明
trace-id いいえ エラーに対するその他の診断との相関関係について ID を追跡します

ペイロード: 空

ターゲットが失敗しました

ターゲットは応答しましたが、その応答が無効であるか、形式が正しくありませんでした

理由コード:131

状態:06A2

[プロパティ] :

名前 タイプ 必須 説明
理由 いいえ メッセージに関して具体的に何が有効でないかについての情報が含まれます

ペイロード: 空

ターゲットのタイムアウト

ターゲットで要求が完了するまで待機している間にタイムアウトになりました

理由コード:131

状態:06A1

[プロパティ] :

名前 タイプ 必須 説明
trace-id いいえ エラーに対するその他の診断との相関関係について ID を追跡します
理由 いいえ メッセージに関して具体的に何が有効でないかについての情報が含まれます

ペイロード: 空

ターゲットを使用できません

要求を完了するためにターゲットに到達できません

理由コード:131

状態:06A0

プロパティ: なし

ペイロード: 空

Throttled

SKU あたりの要求レートが高すぎます

理由コード:151

状態:0501

プロパティ: なし

ペイロード: 空

タイムアウト

操作が完了する前にタイムアウトになりました

理由コード:131

状態:0602

[プロパティ] :

名前 タイプ 必須 説明
trace-id いいえ エラーに対するその他の診断との相関関係について ID を追跡します

ペイロード: 空