Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
High-level alur kerja perintah
Alur kerja ini menunjukkan bagaimana perangkat berinteraksi dengan AWS IoT Device Management Perintah. Semua permintaan HTTP API menggunakan kredentif Sigv4 untuk penandatanganan.
Gambaran Umum Alur Kerja
Membuat dan mengelola perintah
Untuk membuat dan mengelola perintah untuk perangkat Anda, lakukan langkah-langkah berikut.
-
Buat sumber daya perintah
Buat Perintah dari Command Hub
atau menggunakan CreateCommandAPI. -
Tentukan payload
Berikan Payload dalam format apa pun. Tentukan jenis konten untuk memastikan interpretasi perangkat yang benar.
Untuk Perintah dinamis dengan templat payload, payload akhir dihasilkan saat runtime menggunakan parameter yang Anda berikan. Template hanya mendukung format JSON, tetapi Payload yang dihasilkan dapat dikirim sebagai JSON atau CBOR.
-
(Opsional) Kelola perintah yang dibuat
Perbarui nama tampilan dan deskripsi setelah pembuatan. Tandai Perintah sebagai usang saat tidak diperlukan lagi, atau hapus secara permanen. Untuk memodifikasi informasi Payload, buat Command baru.
Pilih perangkat target untuk perintah Anda dan berlangganan topik MQTT
Pilih perangkat target Anda dan konfigurasikan topik MQTT untuk menerima Perintah dan menerbitkan tanggapan.
-
Pilih perangkat target untuk perintah Anda
Pilih perangkat target untuk menerima dan menjalankan Perintah. Gunakan nama Thing untuk perangkat terdaftar atau ID Klien untuk perangkat yang tidak terdaftar. Untuk informasi selengkapnya, lihat Pertimbangan perangkat target.
-
Konfigurasikan AWS IoT kebijakan perangkat
Konfigurasikan kebijakan IAM yang memberikan izin untuk menerima Eksekusi dan menerbitkan pembaruan. Lihat Contoh kebijakan IAM contoh kebijakan.
-
Buat koneksi MQTT
Hubungkan perangkat ke broker pesan dan berlangganan untuk meminta dan menanggapi Topik. Perangkat membutuhkan
iot:Connectizin. Temukan titik akhir bidang data Anda menggunakan perintahDescribeEndpointAPI ataudescribe-endpointCLI:aws iot describe-endpoint --endpoint-type iot:Data-ATSMenjalankan perintah ini mengembalikan titik akhir bidang data khusus akun seperti yang ditunjukkan di bawah ini.
account-specific-prefix.iot.region.amazonaws.com -
Berlangganan topik perintah
Berlangganan Topik permintaan Perintah. Saat Anda memulai Eksekusi, broker pesan menerbitkan Payload ke Topik ini. Perangkat Anda menerima dan memproses Perintah.
(Opsional) Berlangganan Topik respons (
acceptedataurejected) untuk menerima konfirmasi apakah layanan cloud menerima atau menolak respons perangkat.Dalam contoh ini, ganti:
-
dengan<device>thingatauclienttergantung pada apakah perangkat yang Anda targetkan telah terdaftar sebagai hal IoT, atau ditentukan sebagai klien MQTT. -
dengan pengenal unik perangkat target Anda. ID ini dapat berupa ID klien MQTT yang unik atau nama benda.<DeviceID>
catatan
Jika jenis payload bukan JSON atau CBOR,
<PayloadFormat>bidang tersebut mungkin tidak ada di topik permintaan perintah. Untuk mendapatkan format payload, kami sarankan Anda menggunakan MQTT5 untuk mendapatkan informasi format dari header pesan MQTT. Untuk informasi selengkapnya, lihat Topik perintah.$aws/commands/<devices>/<DeviceID>/executions/+/request/<PayloadFormat>$aws/commands/<devices>/<DeviceID>/executions/+/response/accepted/<PayloadFormat>$aws/commands/<devices>/<DeviceID>/executions/+/response/rejected/<PayloadFormat> -
Mulai dan pantau eksekusi perintah untuk perangkat target Anda
Setelah Anda membuat perintah dan menentukan target untuk perintah, Anda dapat memulai eksekusi pada perangkat target dengan melakukan langkah-langkah berikut.
-
Mulai eksekusi perintah pada perangkat target
Mulai Eksekusi dari Command Hub
atau menggunakan StartCommandExecutionAPI dengan titik akhir khusus akun Anda. Gunakaniot:Data-ATSuntuk dual-stack (IPv4/IPv6) atauiot:Jobsuntuk IPv4 saja.API menerbitkan Payload ke Topik permintaan Perintah.
catatan
Jika perangkat offline dan menggunakan sesi persisten MQTT, Perintah menunggu di broker pesan. Ketika perangkat terhubung kembali sebelum batas waktu, ia dapat memproses Perintah dan mempublikasikan hasilnya. Jika batas waktu berakhir, waktu eksekusi habis dan payload akan dibuang.
-
Perbarui hasil eksekusi perintah
Perangkat menerima Payload, memproses Perintah, melakukan tindakan yang ditentukan, dan menerbitkan hasil ke Topik respons Perintah menggunakan API berbasis
UpdateCommandExecutionMQTT. Jika berlangganan Topik yang diterima dan ditolak, perangkat menerima konfirmasi apakah layanan cloud menerima atau menolak tanggapan.Tergantung pada apa yang Anda tentukan dalam topik permintaan,
<devices>dapat berupa barang atau klien, dan<DeviceID>dapat menjadi nama AWS IoT benda Anda atau ID klien MQTT.catatan
Hanya
<PayloadFormat>dapat berupa JSON atau CBOR dalam topik respons perintah.$aws/commands/<devices>/<DeviceID>/executions/<ExecutionId>/response/<PayloadFormat> -
(Opsional) Ambil hasil eksekusi perintah
Ambil hasil Eksekusi dari AWS IoT konsol atau menggunakan
GetCommandExecution. Perangkat harus mempublikasikan hasil ke Topik respons Perintah untuk informasi terbaru. Lihat detail tambahan termasuk waktu pembaruan terakhir, hasil, dan waktu penyelesaian.
(Opsional) Aktifkan notifikasi untuk acara perintah
Berlangganan acara Perintah untuk pemberitahuan saat status Eksekusi berubah. Untuk informasi terperinci tentang peristiwa eksekusi perintah, termasuk format pesan peristiwa dan atribut payload, lihatPeristiwa eksekusi perintah.
-
Membuat aturan topik
Berlangganan Topik acara Perintah untuk pemberitahuan perubahan status. Buat aturan topik untuk merutekan data perangkat ke AWS IoT layanan lain seperti AWS Lambda, Amazon SQS, dan AWS Fungsi Langkah menggunakan AWS IoT konsol atauMembuat AWS IoT aturan.
Dalam contoh ini, ganti
dengan pengenal perintah yang ingin Anda terima notifikasi dan<CommandID>dengan status eksekusi perintah.<CommandExecutionStatus>$aws/events/commandExecution/<CommandID>/<CommandExecutionStatus>catatan
Untuk menerima pemberitahuan untuk semua perintah dan status eksekusi perintah, Anda dapat menggunakan karakter wildcard dan berlangganan topik berikut.
$aws/events/commandExecution/+/# -
Menerima dan memproses acara perintah
Kelola pemberitahuan push Perintah dan buat aplikasi menggunakan acara berlangganan.
Kode berikut menunjukkan contoh payload untuk notifikasi peristiwa perintah yang akan Anda terima.
{ "executionId": "2bd65c51-4cfd-49e4-9310-d5cbfdbc8554", "status":"FAILED", "statusReason": { "reasonCode": "DEVICE_TOO_BUSY", "reasonDescription": "" }, "eventType": "COMMAND_EXECUTION", "commandArn":"arn:aws:iot:us-east-1:123456789012:command/0b9d9ddf-e873-43a9-8e2c-9fe004a90086", "targetArn":"arn:aws:iot:us-east-1:123456789012:thing/5006c3fc-de96-4def-8427-7eee36c6f2bd", "timestamp":1717708862107}