Referensi API MQTT 5 sarana data IoT Hub (pratinjau)

Dokumen ini mendefinisikan operasi yang tersedia dalam versi 2.0 (versi api: 2020-10-01-preview) dari API sarana data IoT Hub.

Catatan

IoT Hub memiliki dukungan fitur terbatas untuk MQTT. Jika solusi Anda memerlukan dukungan MQTT v3.1.1 atau v5, kami sarankan dukungan MQTT di Azure Event Grid. Untuk informasi selengkapnya, lihat Membandingkan dukungan MQTT di IoT Hub dan Event Grid.

Operasional

Mendapatkan kembaran

Mendapatkan status kembaran

Permintaan

Nama topik:$iothub/twin/get

Properti: tidak ada

Payload: kosong

Respons Keberhasilan

Properti: tidak ada

Payload: Kembar

Respons Alternatif

Keadaan Nama Deskripsi
0100 Permintaan Buruk Pesan operasi salah format dan tidak dapat diproses.
0101 Tidak Diizinkan Klien tidak berwenang untuk melakukan operasi.
0102 Tidak Diperbolehkan Operasi tidak diperbolehkan.
0501 Dibatasi tingkat permintaan terlalu tinggi per SKU
0502 Kuota Terlampaui kuota harian per SKU saat ini terlampaui
0601 Kesalahan Server kesalahan server internal
0602 Waktu habis waktu operasi habis sebelum operasi selesai
0603 Server Sibuk server sibuk

Sampel kode semu


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

Patch Kembar Dilaporkan

Status patch Kembar yang dilaporkan

Permintaan

Nama topik:$iothub/twin/patch/reported

Properti:

Nama Tipe Wajib Deskripsi
if-version u64 no

Payload: TwinState

Respons Keberhasilan

Properti:

Nama Tipe Wajib Deskripsi
versi u64 yes Versi status yang dilaporkan setelah patch diterapkan

Payload: kosong

Respons Alternatif

Keadaan Nama Deskripsi
0104 Prasyarat gagal prasyarat tidak terpenuhi yang mengakibatkan permintaan dibatalkan
0100 Permintaan Buruk Pesan operasi salah format dan tidak dapat diproses.
0101 Tidak Diizinkan Klien tidak berwenang untuk melakukan operasi.
0102 Tidak Diperbolehkan Operasi tidak diperbolehkan.
0501 Dibatasi tingkat permintaan terlalu tinggi per SKU
0502 Kuota Terlampaui kuota harian per SKU saat ini terlampaui
0601 Kesalahan Server kesalahan server internal
0602 Waktu habis waktu operasi habis sebelum operasi selesai
0603 Server Sibuk server sibuk

Sampel kode semu


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

Terima Perintah

Terima dan tangani perintah

Pesan

Nama topik:$iothub/commands

Properti:

Nama Tipe Wajib Deskripsi
sequence-no u64 yes Mengurutkan nomor pesan
enqueued-time waktu yes Tanda waktu ketika pesan memasuki sistem
delivery-count u32 yes Jumlah percobaan pengiriman pesan telah dilakukan
creation-time waktu no Tanda waktu saat pesan dibuat (disediakan oleh pengirim)
message-id string no Identitas pesan (disediakan oleh pengirim)
user_id string no Identitas pengguna (disediakan oleh pengirim)
correlation-id string no Identitas korelasi (disediakan oleh pengirim)
Jenis Konten string no menentukan Jenis Konten payload
content-encoding string no menentukan Pengodean Konten payload

Payload: urutan byte apapun

Konfirmasi Keberhasilan

Menunjukkan bahwa perintah telah diterima untuk ditangani oleh klien

Properti: tidak ada

Payload: kosong

Konfirmasi Alternatif

Kode Alasan Keadaan Nama Deskripsi
131 0603 Tinggalkan Menunjukkan perintah tidak akan diproses saat ini dan harus disebarkan ulang di masa mendatang.
131 0100 Tolak Menunjukkan klien menolak perintah dan tidak boleh dicoba lagi.

Sampel kode semu


-> 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

Terima Metode Langsung

Menerima dan menangani panggilan Metode Langsung

Permintaan

Nama topik:$iothub/methods/{name}

Properti: tidak ada

Payload: urutan byte apapun

Respons Keberhasilan

Properti:

Nama Tipe Wajib Deskripsi
response-code u32 yes

Payload: urutan byte apapun

Respons Alternatif

Keadaan Nama Deskripsi
06A0 Tidak tersedia Menunjukkan bahwa klien tidak dapat dijangkau melalui koneksi ini.

Sampel kode semu


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

Terima Perubahan Status yang Diinginkan Kembar

Menerima pembaruan untuk status yang diinginkan Kembar

Pesan

Nama topik:$iothub/twin/patch/desired

Properti:

Nama Tipe Wajib Deskripsi
versi u64 yes Versi status yang diinginkan cocok dengan pembaruan ini

Payload: TwinState

Sampel kode semu


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

Kirim Telemetri

Posting pesan ke saluran telemetri - Azure Event Hubs secara default atau titik akhir lainnya melalui konfigurasi perutean.

Pesan

Nama topik:$iothub/telemetry

Properti:

Nama Tipe Wajib Deskripsi
Jenis Konten string no menerjemahkan ke dalam properti sistem content-type pada pesan yang diposting
content-encoding string no menerjemahkan ke dalam properti sistem content-encoding pada pesan yang diposting
message-id string no menerjemahkan ke dalam properti sistem message-id pada pesan yang diposting
user_id string no menerjemahkan ke dalam properti sistem user-id pada pesan yang diposting
correlation-id string no menerjemahkan ke dalam properti sistem correlation-id pada pesan yang diposting
creation-time waktu no menerjemahkan ke dalam properti iothub-creation-time-utc pada pesan yang diposting

Tip

Format creation-time harus UTC tanpa informasi zona waktu. Misalnya, 2021-04-21T11:30:16Z valid, 2021-04-21T11:30:16-07:00 tidak valid.

Payload: urutan byte apapun

Konfirmasi Keberhasilan

Pesan telah berhasil diposting ke saluran telemetri

Properti: tidak ada

Payload: kosong

Konfirmasi Alternatif

Kode Alasan Keadaan Nama Deskripsi
131 0100 Permintaan Buruk Pesan operasi salah format dan tidak dapat diproses.
135 0101 Tidak Diizinkan Klien tidak berwenang untuk melakukan operasi.
131 0102 Tidak Diperbolehkan Operasi tidak diperbolehkan.
131 0601 Kesalahan Server kesalahan server internal
151 0501 Dibatasi tingkat permintaan terlalu tinggi per SKU
151 0502 Kuota Terlampaui kuota harian per SKU saat ini terlampaui
131 0602 Waktu habis waktu operasi habis sebelum operasi selesai
131 0603 Server Sibuk server sibuk

Sampel kode semu

-> 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

Respons

Permintaan Buruk

Pesan operasi salah format dan tidak dapat diproses.

Kode Alasan:131

Status0100:

Properti:

Nama Tipe Wajib Deskripsi
reason string no berisi informasi tentang apa yang secara khusus tidak valid tentang pesan

Payload: kosong

Konflik

Operasi bertentangan dengan operasi lain yang sedang berlangsung.

Kode Alasan:131

Status0103:

Properti:

Nama Tipe Wajib Deskripsi
trace-id string no ID pelacakan untuk korelasi dengan diagnostik lain untuk kesalahan
reason string no berisi informasi tentang apa yang secara khusus tidak valid tentang pesan

Payload: kosong

Tidak Diperbolehkan

Operasi tidak diperbolehkan.

Kode Alasan:131

Status0102:

Properti:

Nama Tipe Wajib Deskripsi
reason string no berisi informasi tentang apa yang secara khusus tidak valid tentang pesan

Payload: kosong

Tidak Diizinkan

Klien tidak berwenang untuk melakukan operasi.

Kode Alasan:135

Status0101:

Properti:

Nama Tipe Wajib Deskripsi
trace-id string no ID pelacakan untuk korelasi dengan diagnostik lain untuk kesalahan

Payload: kosong

Tidak Ditemukan

sumber daya yang diminta tidak ada

Kode Alasan:131

Status0504:

Properti:

Nama Tipe Wajib Deskripsi
reason string no berisi informasi tentang apa yang secara khusus tidak valid tentang pesan

Payload: kosong

Tidak Diubah

Sumber daya tidak dimodifikasi berdasarkan prasyarat yang disediakan.

Kode Alasan:0

Status0001:

Properti: tidak ada

Payload: kosong

Prasyarat gagal

Prasyarat tidak terpenuhi mengakibatkan permintaan dibatalkan

Kode Alasan:131

Status0104:

Properti: tidak ada

Payload: kosong

Kuota Terlampaui

kuota harian per SKU saat ini terlampaui

Kode Alasan:151

Status0502:

Properti: tidak ada

Payload: kosong

Sumber Daya Telah Habis

sumber daya kehabisan kapasitas untuk menyelesaikan operasi

Kode Alasan:131

Status0503:

Properti:

Nama Tipe Wajib Deskripsi
reason string no berisi informasi tentang apa yang secara khusus tidak valid tentang pesan

Payload: kosong

Server Sibuk

server sibuk

Kode Alasan:131

Status0603:

Properti:

Nama Tipe Wajib Deskripsi
trace-id string no ID pelacakan untuk korelasi dengan diagnostik lain untuk kesalahan

Payload: kosong

Kesalahan Server

kesalahan server internal

Kode Alasan:131

Status0601:

Properti:

Nama Tipe Wajib Deskripsi
trace-id string no ID pelacakan untuk korelasi dengan diagnostik lain untuk kesalahan

Payload: kosong

Target Gagal

Target merespons tetapi responsnya tidak valid atau rusak

Kode Alasan:131

Status06A2:

Properti:

Nama Tipe Wajib Deskripsi
reason string no berisi informasi tentang apa yang secara khusus tidak valid tentang pesan

Payload: kosong

Waktu Target habis

kehabisan waktu untuk menunggu target untuk menyelesaikan permintaan

Kode Alasan:131

Status06A1:

Properti:

Nama Tipe Wajib Deskripsi
trace-id string no ID pelacakan untuk korelasi dengan diagnostik lain untuk kesalahan
reason string no berisi informasi tentang apa yang secara khusus tidak valid tentang pesan

Payload: kosong

Target Tidak Tersedia

Target tidak dapat dijangkau untuk menyelesaikan permintaan

Kode Alasan:131

Status06A0:

Properti: tidak ada

Payload: kosong

Dibatasi

tingkat permintaan terlalu tinggi per SKU

Kode Alasan:151

Status0501:

Properti: tidak ada

Payload: kosong

Waktu habis

waktu operasi habis sebelum operasi selesai

Kode Alasan:131

Status0602:

Properti:

Nama Tipe Wajib Deskripsi
trace-id string no ID pelacakan untuk korelasi dengan diagnostik lain untuk kesalahan

Payload: kosong