Alur kerja perintah tingkat tinggi - AWS IoT Core

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

Langkah-langkah berikut memberikan ikhtisar alur kerja perintah antara perangkat dan AWS IoT Device Management perintah Anda. Saat Anda menggunakan salah satu HTTP API operasi perintah, permintaan ditandatangani menggunakan kredensi Sigv4.

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

Buat dan kelola perintah

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

  1. Buat sumber daya perintah

    Sebelum Anda dapat mengirim perintah ke perangkat Anda, buat sumber daya perintah dari Command Hub AWS IoT konsol, atau gunakan API operasi bidang CreateCommandkontrol.

  2. Tentukan payload

    Saat membuat perintah, Anda harus memberikan muatan untuk perintah Anda. Konten payload dapat menggunakan format apa pun pilihan Anda. Untuk memastikan bahwa perangkat menginterpretasikan muatan dengan benar, sebaiknya Anda juga menentukan jenis konten payload.

  3. (Opsional) Kelola perintah yang dibuat

    Setelah Anda membuat perintah, Anda dapat memperbarui nama tampilan perintah dan deskripsi. Anda juga dapat menandai perintah sebagai usang jika Anda tidak lagi bermaksud menggunakannya, atau menghapus perintah sepenuhnya dari akun Anda. Jika Anda ingin mengubah informasi payload, Anda harus membuat perintah baru dan mengunggah file payload baru.

Pilih perangkat target untuk perintah Anda dan berlangganan MQTT topik

Untuk mempersiapkan alur kerja perintah, pilih perangkat target Anda dan tentukan MQTT topik yang AWS IoT dicadangkan untuk menerima perintah dan mempublikasikan pesan respons.

  1. Pilih perangkat target untuk perintah Anda

    Untuk mempersiapkan alur kerja perintah, pilih perangkat target Anda yang akan menerima perintah dan melakukan tindakan yang ditentukan. Perangkat target dapat berupa AWS IoT benda yang telah Anda daftarkan di AWS IoT registri, atau dapat ditentukan menggunakan ID MQTT klien, jika perangkat Anda belum terdaftar AWS IoT. Untuk informasi selengkapnya, lihat Pertimbangan perangkat target.

  2. Konfigurasikan kebijakan perangkat IoT

    Sebelum perangkat Anda dapat menerima eksekusi perintah dan memublikasikan pembaruan, perangkat harus menggunakan IAM kebijakan yang memberikan izin untuk melakukan tindakan ini. Untuk contoh contoh kebijakan yang dapat Anda gunakan tergantung pada apakah perangkat Anda terdaftar sebagai AWS IoT sesuatu, atau ditentukan sebagai ID MQTT klien, lihatIAMKebijakan sampel.

  3. Membangun MQTT koneksi

    Untuk mempersiapkan perangkat Anda menggunakan fitur perintah, perangkat Anda harus terlebih dahulu terhubung ke broker pesan dan berlangganan topik permintaan dan respons. Perangkat Anda harus diizinkan untuk melakukan iot:Connect tindakan untuk terhubung AWS IoT Core dan membuat MQTT koneksi dengan broker pesan. Untuk menemukan titik akhir bidang data untuk Anda Akun AWS, gunakan perintah DescribeEndpoint API atau describe-endpoint CLI perintah seperti yang ditunjukkan di bawah ini.

    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. Susbcribe untuk topik perintah

    Setelah koneksi dibuat, perangkat Anda kemudian dapat berlangganan topik permintaan perintah. Saat Anda membuat perintah dan memulai eksekusi perintah pada perangkat target Anda, pesan payload akan dipublikasikan ke topik permintaan oleh broker pesan. Perangkat Anda kemudian dapat menerima pesan payload dan memproses perintah.

    (Opsional) Perangkat Anda juga dapat berlangganan topik respons perintah ini (acceptedataurejected) untuk menerima pesan yang menunjukkan apakah layanan cloud menerima atau menolak respons dari 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 MQTT klien.

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

    catatan

    Jika jenis payload tidak JSON atauCBOR, <PayloadFormat> bidang mungkin tidak ada dalam topik permintaan perintah. Untuk mendapatkan format payload, kami sarankan Anda menggunakan MQTT 5 untuk mendapatkan informasi format dari header MQTT pesan. Untuk informasi selengkapnya, lihat Topik perintah.

    $aws/commands/<devices>/<DeviceID>/executions/+/request/<PayloadFormat> $aws/commands/<devices>/<DeviceID>/executions/+/response/<PayloadFormat>/accepted $aws/commands/<devices>/<DeviceID>/executions/+/response/<PayloadFormat>/rejected

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.

  1. Mulai eksekusi perintah pada perangkat target

    Mulai eksekusi perintah pada perangkat target dari Command Hub AWS IoT konsol, atau gunakan bidang StartCommandExecution data API dengan titik akhir khusus akun iot:Jobs Anda. APIMempublikasikan pesan payload ke topik permintaan perintah yang disebutkan di atas bahwa perangkat telah berlangganan.

    catatan

    Jika perangkat sedang offline ketika perintah dikirim dari cloud dan jika menggunakan sesi MQTT persisten, perintah menunggu di broker pesan. Jika perangkat kembali online sebelum durasi waktu habis, dan jika telah berlangganan topik permintaan perintah, perangkat kemudian dapat memproses perintah dan mempublikasikan hasilnya ke topik respons perintah. Jika perangkat tidak kembali online sebelum durasi waktu habis, eksekusi perintah akan habis waktu dan pesan payload mungkin kedaluwarsa dan dibuang oleh broker pesan.

  2. Perbarui hasil eksekusi perintah

    Perangkat sekarang menerima pesan payload dan dapat memproses perintah dan melakukan tindakan yang ditentukan, dan kemudian mempublikasikan hasil eksekusi perintah ke topik respons perintah berikut UpdateCommandExecution API menggunakan. Jika perangkat Anda berlangganan perintah yang diterima dan ditolak topik respons, perangkat akan menerima pesan yang menunjukkan apakah respons diterima atau ditolak oleh layanan cloud.

    Bergantung pada bagaimana Anda menentukan dalam topik permintaan, <devices> dapat berupa benda atau klien, dan <DeviceID> dapat berupa nama IoT Anda atau ID MQTT klien.

    catatan

    Hanya <PayloadFormat> bisa JSON atau CBOR dalam topik respons perintah.

    $aws/commands/<devices>/<DeviceID>/executions/<ExecutionId>/response/<PayloadFormat>
  3. (Opsional) Ambil hasil eksekusi perintah

    Untuk mengambil hasil eksekusi perintah, Anda dapat melihat riwayat perintah dari AWS IoT konsol, atau menggunakan API operasi bidang GetCommandExecution kontrol. Untuk mendapatkan informasi terbaru, perangkat Anda harus mempublikasikan hasil eksekusi perintah ke topik respons perintah. Anda juga dapat memperoleh informasi tambahan tentang data eksekusi, seperti kapan terakhir diperbarui, hasil eksekusi, dan kapan eksekusi selesai.

(Opsional) Aktifkan pemberitahuan untuk acara perintah

Anda dapat berlangganan acara perintah untuk menerima pemberitahuan ketika status eksekusi perintah berubah. Langkah-langkah berikut menunjukkan kepada Anda cara berlangganan acara perintah, dan kemudian memprosesnya.

  1. Buat aturan topik

    Anda dapat berlangganan topik peristiwa perintah dan menerima pemberitahuan ketika status eksekusi perintah berubah. Anda juga dapat membuat aturan topik untuk merutekan data yang diproses oleh perangkat ke AWS IoT layanan lain yang didukung oleh aturan, seperti Amazon AWS Lambda SQS, dan AWS Step Functions. Anda dapat membuat aturan topik baik menggunakan AWS IoT konsol, atau API operasi bidang CreateTopicRule AWS IoT Core kontrol. Untuk informasi selengkapnya, lihat Membuat AWS IoT aturan.

    Dalam contoh ini, ganti <CommandID> dengan pengidentifikasi 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 peristiwa perintah

    Jika Anda membuat aturan topik di langkah sebelumnya untuk berlangganan acara perintah, maka Anda dapat mengelola pemberitahuan push perintah yang Anda terima dan membangun aplikasi di atas layanan ini.

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 }