Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
MQTTTopik Device Shadow
Layanan Device Shadow menggunakan MQTT topik yang dicadangkan untuk memungkinkan perangkat dan aplikasi mendapatkan, memperbarui, atau menghapus informasi status untuk perangkat (bayangan).
Menerbitkan dan berlangganan topik bayangan memerlukan otorisasi berbasis topik. AWS IoT
berhak untuk menambahkan topik baru ke struktur topik yang ada. Untuk alasan ini, kami menyarankan Anda menghindari langganan wild card ke topik bayangan. Misalnya, hindari berlangganan filter topik seperti $aws/things/thingName/shadow/#
karena jumlah topik yang cocok dengan filter topik ini mungkin meningkat saat AWS IoT memperkenalkan topik bayangan baru. Untuk contoh pesan yang dipublikasikan pada topik ini lihatBerinteraksi dengan bayangan.
Bayangan dapat dinamai atau tidak disebutkan namanya (klasik). Topik yang digunakan oleh masing-masing hanya berbeda dalam awalan topik. Tabel ini menunjukkan awalan topik yang digunakan oleh setiap jenis bayangan.
Nilai ShadowTopicPrefix |
Jenis bayangan |
---|---|
$aws/things/ |
Bayangan tanpa nama (klasik) |
$aws/things/ |
Bernama bayangan |
Untuk membuat topik lengkap, pilih jenis bayangan yang ingin Anda rujuk, ganti, dan
jika berlakushadowName
, dengan nilai yang sesuai, lalu tambahkan dengan rintisan topik seperti yang ditunjukkan pada bagian berikut. thingName
ShadowTopicPrefix
Berikut ini adalah MQTT topik yang digunakan untuk berinteraksi dengan bayangan.
Topik
/dapatkan
Publikasikan pesan kosong ke topik ini untuk mendapatkan bayangan perangkat:
ShadowTopicPrefix
/get
AWS IoT merespons dengan menerbitkan salah satu /dapatkan/diterima atau/dapatkan/ditolak.
Contoh kebijakan
Berikut ini adalah contoh kebijakan yang diperlukan:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:
region
:account
:topic/$aws/things/thingName
/shadow/get" ] } ] }
/dapatkan/diterima
AWS IoT menerbitkan dokumen bayangan respons ke topik ini saat mengembalikan bayangan perangkat:
ShadowTopicPrefix
/get/accepted
Untuk informasi selengkapnya, lihat Dokumen negara respons.
Contoh kebijakan
Berikut ini adalah contoh kebijakan yang diperlukan:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/get/accepted" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/get/accepted" ] } ] }
/dapatkan/ditolak
AWS IoT menerbitkan dokumen respons kesalahan ke topik ini jika tidak dapat mengembalikan bayangan perangkat:
ShadowTopicPrefix
/get/rejected
Untuk informasi selengkapnya, lihat Dokumen respons kesalahan.
Contoh kebijakan
Berikut ini adalah contoh kebijakan yang diperlukan:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/get/rejected" ] }, { "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/get/rejected" ] } ] }
/perbarui
Publikasikan dokumen status permintaan ke topik ini untuk memperbarui bayangan perangkat:
ShadowTopicPrefix
/update
Badan pesan berisi dokumen status permintaan sebagian.
Klien yang mencoba memperbarui status perangkat akan mengirim dokumen status JSON permintaan dengan desired
properti seperti ini:
{ "state": { "desired": { "color": "red", "power": "on" } } }
Perangkat yang memperbarui bayangannya akan mengirim dokumen status JSON permintaan dengan reported
properti, seperti ini:
{ "state": { "reported": { "color": "red", "power": "on" } } }
AWS IoT merespons dengan menerbitkan salah satu /perbarui/diterima atau/perbarui/ditolak.
Contoh kebijakan
Berikut ini adalah contoh kebijakan yang diperlukan:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:
region
:account
:topic/$aws/things/thingName
/shadow/update" ] } ] }
/perbarui/delta
AWS IoT menerbitkan dokumen status respons ke topik ini saat menerima perubahan untuk bayangan perangkat, dan dokumen status permintaan berisi nilai desired
dan reported
status yang berbeda:
ShadowTopicPrefix
/update/delta
Buffer pesan berisi file. /dokumen status respons delta
Detail isi pesan
-
Pesan yang dipublikasikan hanya
update/delta
mencakup atribut yang diinginkan yang berbeda antara bagiandesired
danreported
bagian. Ini berisi semua atribut ini, terlepas dari apakah atribut ini terkandung dalam pesan pembaruan saat ini atau sudah disimpan di AWS IoT. Atribut yang tidak berbeda antarareported
bagiandesired
dan bagian tidak termasuk. -
Jika atribut ada di
reported
bagian tetapi tidak memiliki padanan didesired
bagian, itu tidak termasuk. -
Jika atribut ada di
desired
bagian tetapi tidak memiliki padanan direported
bagian, itu disertakan. -
Jika atribut dihapus dari
reported
bagian tetapi masih ada didesired
bagian, itu disertakan.
Contoh kebijakan
Berikut ini adalah contoh kebijakan yang diperlukan:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/update/delta" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/update/delta" ] } ] }
/perbarui/diterima
AWS IoT menerbitkan dokumen status respons ke topik ini saat menerima perubahan untuk bayangan perangkat:
ShadowTopicPrefix
/update/accepted
Buffer pesan berisi file. /dokumen status respons yang diterima
Contoh kebijakan
Berikut ini adalah contoh kebijakan yang diperlukan:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/update/accepted" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/update/accepted" ] } ] }
/pembaruan/dokumen
AWS IoT menerbitkan dokumen status ke topik ini setiap kali pembaruan bayangan berhasil dilakukan:
ShadowTopicPrefix
/update/documents
Badan pesan berisi a/dokumen dokumen status respons.
Contoh kebijakan
Berikut ini adalah contoh kebijakan yang diperlukan:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/update/documents" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/update/documents" ] } ] }
/perbarui/ditolak
AWS IoT menerbitkan dokumen respons kesalahan ke topik ini saat menolak perubahan bayangan perangkat:
ShadowTopicPrefix
/update/rejected
Badan pesan berisiDokumen respons kesalahan.
Contoh kebijakan
Berikut ini adalah contoh kebijakan yang diperlukan:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/update/rejected" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/update/rejected" ] } ] }
/delete
Untuk menghapus bayangan perangkat, publikasikan pesan kosong ke topik hapus:
ShadowTopicPrefix
/delete
Isi pesan diabaikan.
Perhatikan bahwa menghapus bayangan tidak mengatur ulang nomor versinya ke 0.
AWS IoT merespons dengan menerbitkan salah satu /hapus/diterima atau/hapus/ditolak.
Contoh kebijakan
Berikut ini adalah contoh kebijakan yang diperlukan:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:
region
:account
:topic/$aws/things/thingName
/shadow/delete" ] } ] }
/hapus/diterima
AWS IoT menerbitkan pesan ke topik ini saat bayangan perangkat dihapus:
ShadowTopicPrefix
/delete/accepted
Contoh kebijakan
Berikut ini adalah contoh kebijakan yang diperlukan:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/delete/accepted" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/delete/accepted" ] } ] }
/hapus/ditolak
AWS IoT menerbitkan dokumen respons kesalahan ke topik ini jika tidak dapat menghapus bayangan perangkat:
ShadowTopicPrefix
/delete/rejected
Badan pesan berisiDokumen respons kesalahan.
Contoh kebijakan
Berikut ini adalah contoh kebijakan yang diperlukan:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/delete/rejected" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/delete/rejected" ] } ] }