Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Alur kerja perintah tingkat tinggi
Alur kerja ini menunjukkan bagaimana perangkat berinteraksi dengan AWS IoT Device Management Perintah. Semua permintaan HTTP API menggunakan kredensi 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 Command 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 disediakan. 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 lagi diperlukan, 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 tanggapan penerbitan.
-
Pilih perangkat target untuk perintah Anda
Pilih perangkat target untuk menerima dan menjalankan Command. Gunakan nama Thing untuk perangkat terdaftar atau ID Klien untuk perangkat yang tidak terdaftar. Untuk informasi selengkapnya, lihat Pertimbangan perangkat target.
-
Konfigurasikan kebijakan AWS IoT perangkat
Konfigurasikan kebijakan IAM yang memberikan izin untuk menerima Eksekusi dan mempublikasikan pembaruan. Lihat Contoh kebijakan IAM contoh kebijakan.
-
Buat koneksi MQTT
Hubungkan perangkat ke broker pesan dan berlangganan Topik permintaan dan respons. 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. Ketika 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 IoT, atau ditentukan sebagai klien MQTT. -
dengan pengenal unik perangkat target Anda. ID ini dapat berupa ID klien MQTT unik atau nama benda.<DeviceID>
catatan
Jika jenis payload bukan JSON atau CBOR,
<PayloadFormat>bidang mungkin tidak ada dalam 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> -
Memulai dan memantau 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 gunakan StartCommandExecutionAPI dengan titik akhir khusus akun Anda. Gunakaniot:Data-ATSuntuk dual-stack (IPv4/IPv6) atau hanyaiot:Jobsuntuk IPv4 .API menerbitkan Payload ke Topik permintaan Perintah.
catatan
Jika perangkat offline dan menggunakan sesi persisten MQTT, Perintah menunggu di broker pesan. Saat perangkat terhubung kembali sebelum batas waktu, perangkat dapat memproses Perintah dan mempublikasikan hasil. Jika batas waktu berakhir, waktu eksekusi habis dan muatan 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 akan menerima konfirmasi apakah layanan cloud menerima atau menolak respons.Tergantung pada apa yang Anda tentukan dalam topik permintaan,
<devices>dapat berupa benda atau klien, dan<DeviceID>dapat berupa nama AWS IoT barang Anda atau ID klien MQTT.catatan
Hanya
<PayloadFormat>bisa 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 pemberitahuan untuk acara perintah
Berlangganan acara Perintah untuk pemberitahuan saat status Eksekusi berubah.
-
Buat aturan topik
Berlangganan Topik acara Perintah untuk pemberitahuan perubahan status. Buat aturan topik untuk merutekan data perangkat ke AWS IoT layanan lain sepertiAWS Lambda, Amazon SQS, dan AWS Step Functions menggunakan AWS IoT konsol atau. Membuat AWS IoT aturan
Dalam contoh ini, ganti
dengan pengidentifikasi 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 peristiwa perintah
Kelola pemberitahuan push Command dan buat aplikasi menggunakan acara berlangganan.
Kode berikut menunjukkan payload sampel untuk pemberitahuan 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}