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

Alur kerja ini menunjukkan bagaimana perangkat berinteraksi dengan AWS IoT Device Management Perintah. Semua permintaan HTTP API menggunakan kredensi Sigv4 untuk penandatanganan.

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

Membuat dan mengelola perintah

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

  1. Buat sumber daya perintah

    Buat Command dari Command Hub atau menggunakan CreateCommandAPI.

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

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

  2. Konfigurasikan kebijakan AWS IoT perangkat

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

  3. Buat koneksi MQTT

    Hubungkan perangkat ke broker pesan dan berlangganan Topik permintaan dan respons. 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. 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:

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

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

    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.

  1. Mulai eksekusi perintah pada perangkat target

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

  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 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>
  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 pemberitahuan untuk acara perintah

Berlangganan acara Perintah untuk pemberitahuan saat status Eksekusi berubah.

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

    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 }