Bagikan melalui


Menjadwalkan dan menyiarkan pekerjaan (Azure CLI)

Gunakan Azure IoT Hub untuk menjadwalkan dan melacak pekerjaan yang memperbarui jutaan perangkat. Gunakan pekerjaan untuk:

  • Memperbarui properti yang diinginkan
  • Memperbarui tag
  • Memanggil metode langsung

Secara konseptual, pekerjaan membungkus salah satu tindakan ini dan melacak kemajuan eksekusi terhadap satu set perangkat. Kumpulan perangkat yang berinteraksi dengan pekerjaan ditentukan oleh kueri kembar perangkat. Misalnya, aplikasi backend dapat menggunakan pekerjaan untuk memanggil metode reboot pada 10.000 perangkat, yang ditentukan oleh kueri kembar perangkat dan dijadwalkan pada waktu mendatang. Aplikasi itu kemudian dapat melacak kemajuan saat masing-masing perangkat tersebut menerima dan menjalankan metode reboot.

Pelajari lebih lanjut tentang setiap kemampuan ini di artikel ini:

Catatan

Fitur yang dijelaskan dalam artikel ini hanya tersedia di tingkat standar IoT Hub. Untuk informasi selengkapnya tentang tingkat IoT Hub dasar dan standar/gratis, lihat Memilih tingkat IoT Hub yang tepat untuk solusi Anda.

Artikel ini memperlihatkan kepada Anda cara membuat dua sesi Azure CLI:

  • Sesi yang membuat perangkat yang disimulasikan. Perangkat yang disimulasikan dikonfigurasi untuk mengembalikan kode status dan payload JSON saat metode langsung dipanggil.

  • Sesi yang membuat dua pekerjaan terjadwal. Pekerjaan pertama memanggil metode langsung dan pekerjaan kedua memperbarui properti kembar perangkat yang diinginkan pada perangkat simulasi yang dibuat di sesi lain.

Prasyarat

  • Azure CLI. Anda juga dapat menjalankan perintah dalam artikel ini menggunakan Azure Cloud Shell, shell CLI interaktif yang berjalan di browser Anda atau di aplikasi seperti Terminal Windows. Jika menggunakan Cloud Shell, Anda tidak perlu memasang apa pun. Jika Anda lebih suka menggunakan CLI secara lokal, artikel ini memerlukan Azure CLI versi 2.36 atau yang lebih baru. Jalankan az --version untuk menemukan versinya. Untuk menginstal atau meningkatkan Azure CLI secara lokal, lihat Menginstal Azure CLI.

  • IoT Hub di langganan Azure Anda. Buat satu dengan CLI atau portal Azure.

  • Pastikan port 8883 terbuka di firewall Anda. Sampel perangkat dalam artikel ini menggunakan protokol MQTT, yang berkomunikasi melalui port 8883. Port ini mungkin diblokir di beberapa lingkungan jaringan perusahaan dan pendidikan. Untuk informasi selengkapnya dan cara mengatasi masalah ini, lihat Menyambungkan ke Azure IoT Hub (MQTT).

Menyiapkan Cloud Shell

Jika Anda ingin menggunakan Cloud Shell Azure, Anda harus terlebih dahulu meluncurkan dan mengonfigurasinya. Jika Anda menggunakan CLI secara lokal, lewati ke bagian Siapkan dua sesi CLI .

  1. Pilih ikon Cloud Shell dari header halaman di portal Azure.

    Cuplikan layar kontrol global dari header halaman portal Azure, menyoroti ikon Cloud Shell.

    Catatan

    Jika ini pertama kalinya Anda menggunakan Cloud Shell, Cloud Shell akan meminta Anda untuk membuat penyimpanan, yang diperlukan untuk menggunakan Cloud Shell. Pilih langganan untuk membuat akun penyimpanan dan berbagi Microsoft Azure Files.

  2. Gunakan pemilih lingkungan di toolbar Cloud Shell untuk memilih lingkungan CLI pilihan Anda. Artikel ini menggunakan lingkungan Bash . Anda juga dapat menggunakan lingkungan PowerShell .

    Catatan

    Beberapa perintah memerlukan sintaks atau pemformatan yang berbeda di lingkungan Bash dan PowerShell . Untuk informasi selengkapnya, lihat Tips untuk menggunakan Azure CLI dengan sukses.

    Cuplikan layar jendela Azure Cloud Shell, menyoroti pemilih lingkungan di toolbar.

Siapkan dua sesi CLI

Selanjutnya, Anda harus menyiapkan dua sesi Azure CLI. Jika Anda menggunakan Cloud Shell, Anda menjalankan sesi ini di tab Cloud Shell terpisah. Jika menggunakan klien CLI lokal, Anda menjalankan instans CLI terpisah. Gunakan sesi CLI terpisah untuk tugas-tugas berikut:

  • Sesi pertama mensimulasikan perangkat IoT yang berkomunikasi dengan hub IoT Anda.
  • Sesi kedua menjadwalkan pekerjaan untuk perangkat simulasi Anda dengan hub IoT Anda.

Catatan

Azure CLI mengharuskan Anda untuk masuk ke akun Azure Anda. Jika Anda menggunakan Cloud Shell, Anda secara otomatis masuk ke akun Azure Anda. Jika Anda menggunakan klien CLI lokal, Anda harus masuk ke setiap sesi CLI. Semua komunikasi antara sesi shell Azure CLI Anda dengan hub IoT Anda diautentikasi dan dienkripsi. Akibatnya, artikel ini tidak memerlukan autentikasi tambahan yang akan Anda gunakan dengan perangkat nyata, seperti string koneksi. Untuk informasi selengkapnya tentang masuk dengan Azure CLI, lihat Masuk dengan Azure CLI.

  1. Pada sesi CLI pertama, jalankan perintah tambahkan ekstensi az. Jalankan perintah tambahkan ekstensi az untuk menambahkan Microsoft Azure IoT Extension untuk Azure CLI ke shell CLI Anda. Ekstensi ini menambahkan perintah khusus IoT Hub, IoT Edge, dan IoT Device Provisioning Service (DPS) ke Azure CLI. Setelah menginstal ekstensi, Anda tidak perlu menginstalnya lagi di sesi Cloud Shell apa pun.

    az extension add --name azure-iot
    

    Catatan

    Artikel ini menggunakan versi terbaru ekstensi Azure IoT, yang disebut azure-iot. Versi warisan disebut azure-cli-iot-ext. Anda seharusnya hanya memiliki satu versi yang terinstal pada satu waktu. Anda bisa menggunakan perintah az extension list untuk memvalidasi ekstensi yang saat ini terinstal.

    Gunakan az extension remove --name azure-cli-iot-ext untuk menghapus versi lama ekstensi.

    Gunakan az extension add --name azure-iot untuk menambahkan versi baru ekstensi.

    Untuk melihat ekstensi apa yang telah Anda instal, gunakan az extension list.

  2. Buka sesi CLI kedua. Jika Anda menggunakan Cloud Shell di browser, pilih ikon Buka sesi baru pada toolbar sesi CLI pertama Anda. Jika Anda menggunakan CLI secara lokal, buka instans kedua.

    Cuplikan layar jendela Azure Cloud Shell, menyoroti ikon Buka Sesi Baru di toolbar.

Membuat dan mensimulasikan perangkat

Di bagian ini, Anda membuat identitas perangkat untuk hub IoT Anda di sesi CLI pertama, lalu menyimulasikan perangkat menggunakan identitas perangkat tersebut. Perangkat yang disimulasikan merespons pekerjaan yang Anda jadwalkan di sesi CLI kedua.

Untuk membuat dan memulai perangkat yang disimulasikan:

  1. Pada sesi CLI pertama, jalankan perintah az iot hub device-identity create , ganti tempat penampung berikut dengan nilai yang sesuai. Perintah ini membuat identitas perangkat untuk perangkat simulasi Anda.

    {DeviceName}. Nama perangkat simulasi Anda.

    {HubName}. Nama IoT hub.

    az iot hub device-identity create --device-id {DeviceName} --hub-name {HubName} 
    
  2. Pada sesi CLI pertama, jalankan perintah simulasi perangkat az iot , ganti tempat penampung berikut dengan nilai yang sesuai. Perintah ini mensimulasikan perangkat yang Anda buat di langkah sebelumnya. Perangkat yang disimulasikan dikonfigurasi untuk mengembalikan kode status dan payload setiap kali metode langsung dipanggil.

    {DeviceName}. Nama perangkat simulasi Anda.

    {HubName}. Nama IoT hub.

    az iot device simulate --device-id {DeviceName} --hub-name {HubName} \
                           --method-response-code 201 \
                           --method-response-payload '{"result":"Direct method successful"}'
    

    Tip

    Secara default, perintah simulasi perangkat az iot mengirimkan 100 pesan perangkat ke cloud dengan interval 3 detik di antara pesan. Simulasi berakhir setelah semua pesan dikirim. Jika Anda ingin simulasi berjalan lebih lama, Anda dapat menggunakan --msg-count parameter untuk menentukan lebih banyak pesan atau --msg-interval parameter untuk menentukan interval yang lebih lama di antara pesan. Anda juga dapat menjalankan perintah lagi untuk memulai ulang perangkat yang disimulasikan.

Menjadwalkan pekerjaan untuk memanggil metode langsung

Di bagian ini, Anda menjadwalkan pekerjaan di sesi CLI kedua untuk memanggil metode langsung pada perangkat yang disimulasikan yang berjalan di sesi CLI pertama.

  1. Konfirmasikan bahwa perangkat yang disimulasikan dalam sesi CLI pertama sedang berjalan. Jika tidak, mulai ulang dengan menjalankan perintah simulasi perangkat az iot lagi dari Buat dan simulasikan perangkat.

  2. Di sesi CLI kedua, jalankan perintah az iot hub job create , ganti tempat penampung berikut dengan nilai yang sesuai. Dalam contoh ini, tidak ada metode yang sudah ada sebelumnya untuk perangkat. Perintah menjadwalkan pekerjaan yang memanggil contoh nama metode pada perangkat yang disimulasikan, memberikan nilai null untuk payload metode. Metode ini menyediakan kode status dan payload dalam responsnya.

    {HubName}. Nama IoT hub.

    {JobName}. Nama pekerjaan terjadwal Anda. Nama pekerjaan unik, jadi pilih nama pekerjaan yang berbeda setiap kali Anda menjalankan perintah ini.

    {MethodName}. Nama metode langsung Anda. Perangkat yang disimulasikan tidak memiliki metode yang sudah ada sebelumnya, sehingga Anda dapat memilih nama apa pun yang Anda inginkan untuk perintah ini.

    {DeviceName}. Nama perangkat simulasi Anda.

    az iot hub job create --hub-name {HubName} --job-id {JobName} \
                          --job-type scheduleDeviceMethod \
                          --method-name {MethodName} --method-payload 'null' \
                          --query-condition "deviceId = '{DeviceName}'"
    

    Tip

    Saat menjadwalkan perintah az iot hub job create pekerjaan yang memanggil metode langsung, Anda harus menentukan nilai untuk --method-name parameter opsional dan --method-payload . Untuk metode langsung yang tidak menerima payload, tentukan null untuk --method-payload parameter .

  3. Pada sesi CLI pertama, konfirmasikan bahwa output menunjukkan pemanggilan metode. Dalam cuplikan layar berikut, kami menggunakan dan untuk tempat penampung dan{MethodName}, masing-masing, dalam az iot hub job create perintah CLI dari langkah sebelumnya.{DeviceName}SampleMethodSampleDevice

    Cuplikan layar perangkat simulasi yang menampilkan output setelah metode dipanggil.

Menjadwalkan pekerjaan untuk memperbarui properti kembar perangkat

Di bagian ini, Anda menjadwalkan pekerjaan di sesi CLI kedua untuk memperbarui properti kembar perangkat yang diinginkan pada perangkat simulasi yang berjalan di sesi CLI pertama.

  1. Konfirmasikan bahwa perangkat yang disimulasikan dalam sesi CLI pertama sedang berjalan. Jika tidak, mulai ulang dengan menjalankan perintah simulasi perangkat az iot lagi dari Buat dan simulasikan perangkat.

  2. Di sesi CLI kedua, jalankan perintah az iot hub job create , ganti tempat penampung berikut dengan nilai yang sesuai. Dalam contoh ini, kami menjadwalkan pekerjaan untuk menetapkan nilai properti BuildingNo kembar yang diinginkan menjadi 45 untuk perangkat simulasi kami.

    {HubName}. Nama IoT hub.

    {JobName}. Nama pekerjaan terjadwal Anda. Nama pekerjaan unik, jadi pilih nama pekerjaan yang berbeda setiap kali Anda menjalankan perintah ini.

    {DeviceName}. Nama perangkat simulasi Anda.

    az iot hub job create --hub-name {HubName} --job-id {JobName} \
                          --job-type scheduleUpdateTwin \
                          --twin-patch '{"properties":{"desired": {"BuildingNo": 45}}}' \
                          --query-condition "deviceId = '{DeviceName}'"
    
  3. Pada sesi CLI pertama, konfirmasikan output menunjukkan pembaruan yang berhasil untuk properti kembar perangkat yang dilaporkan, yang menunjukkan bahwa properti kembar perangkat yang diinginkan juga diperbarui.

    Cuplikan layar perangkat simulasi yang menampilkan output setelah properti kembar perangkat diperbarui.

Langkah berikutnya

Dalam artikel ini, Anda menggunakan Azure CLI untuk mensimulasikan perangkat dan menjadwalkan pekerjaan untuk menjalankan metode langsung dan memperbarui properti kembar perangkat untuk perangkat yang disimulasikan tersebut.

Untuk terus menjelajahi hub IoT dan pola manajemen perangkat, perbarui gambar di Tutorial Pembaruan Perangkat untuk Azure IoT Hub menggunakan Gambar Referensi Raspberry Pi 3 B+.