View a markdown version of this page

High-level alur kerja perintah - AWS IoT Core

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.

Ikhtisar alur kerja perintah AWS IoT Device Management perangkat tingkat tinggi.

Membuat dan mengelola perintah

Untuk membuat dan mengelola perintah untuk perangkat Anda, lakukan langkah-langkah berikut.

  1. Buat sumber daya perintah

    Buat Perintah dari Command Hub atau menggunakan CreateCommand API.

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

  3. (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.

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

  2. Konfigurasikan AWS IoT kebijakan perangkat

    Konfigurasikan kebijakan IAM yang memberikan izin untuk menerima Eksekusi dan menerbitkan pembaruan. Lihat Contoh kebijakan IAM contoh kebijakan.

  3. Buat koneksi MQTT

    Hubungkan perangkat ke broker pesan dan berlangganan untuk meminta dan menanggapi Topik. Perangkat membutuhkan iot:Connect izin. Temukan titik akhir bidang data Anda menggunakan perintah DescribeEndpoint API atau describe-endpoint CLI:

    aws iot describe-endpoint --endpoint-type iot:Data-ATS

    Menjalankan perintah ini mengembalikan titik akhir bidang data khusus akun seperti yang ditunjukkan di bawah ini.

    account-specific-prefix.iot.region.amazonaws.com
  4. 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:

    • <device>dengan thing atau client tergantung pada apakah perangkat yang Anda targetkan telah terdaftar sebagai hal IoT, atau ditentukan sebagai klien MQTT.

    • <DeviceID>dengan pengenal unik perangkat target Anda. ID ini dapat berupa ID klien MQTT yang unik atau nama benda.

    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.

  1. Mulai eksekusi perintah pada perangkat target

    Mulai Eksekusi dari Command Hub atau menggunakan StartCommandExecution API dengan titik akhir khusus akun Anda. Gunakan iot:Data-ATS untuk dual-stack (IPv4/IPv6) atau iot:Jobs untuk 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.

  2. Perbarui hasil eksekusi perintah

    Perangkat menerima Payload, memproses Perintah, melakukan tindakan yang ditentukan, dan menerbitkan hasil ke Topik respons Perintah menggunakan API berbasis UpdateCommandExecution MQTT. 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>
  3. (Opsional) Ambil hasil eksekusi perintah

    Ambil hasil Eksekusi dari AWS IoT konsol atau menggunakanGetCommandExecution. 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.

  1. 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 <CommandID> dengan pengenal perintah yang ingin Anda terima notifikasi dan <CommandExecutionStatus> dengan status eksekusi perintah.

    $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/+/#
  2. 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 }