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:
Perangkat kembar dan properti: Mulai dengan perangkat kembar dan Memahami dan menggunakan perangkat kembar di IoT Hub
Metode langsung: IoT Hub panduan pengembang - metode langsung
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 .
Pilih ikon Cloud Shell dari header halaman di portal Azure.
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.
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.
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.
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 disebutazure-cli-iot-ext
. Anda seharusnya hanya memiliki satu versi yang terinstal pada satu waktu. Anda bisa menggunakan perintahaz 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
.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.
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:
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}
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.
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.
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, tentukannull
untuk--method-payload
parameter .Pada sesi CLI pertama, konfirmasikan bahwa output menunjukkan pemanggilan metode. Dalam cuplikan layar berikut, kami menggunakan dan untuk tempat penampung dan
{MethodName}
, masing-masing, dalamaz iot hub job create
perintah CLI dari langkah sebelumnya.{DeviceName}
SampleMethod
SampleDevice
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.
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.
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}'"
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.
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+.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk