Bagikan melalui


Menyiapkan pembaruan untuk diimpor ke Pembaruan Perangkat

Artikel ini menjelaskan cara mendapatkan pembaruan baru dan menyiapkannya untuk mengimpor ke Azure Device Update for IoT Hub dengan membuat manifes impor.

Prasyarat

Tip

Perintah Azure CLI dalam artikel ini menggunakan garis miring terbalik \ karakter untuk kelanjutan baris sehingga argumen perintah lebih mudah dibaca. Sintaks ini berfungsi di lingkungan Bash. Jika Anda menjalankan perintah ini di PowerShell, ganti setiap garis miring terbelakang dengan backtick ', atau hapus sepenuhnya.

Mendapatkan file pembaruan untuk perangkat Anda

Dapatkan file atau file pembaruan untuk disebarkan ke perangkat Anda menggunakan Pembaruan Perangkat. Jika Anda membeli perangkat dari produsen peralatan asli (OEM) atau integrator solusi, organisasi tersebut mungkin menyediakan pembaruan tanpa Anda harus membuat file pembaruan. Hubungi OEM atau integrator solusi untuk mengetahui cara mereka memberikan pembaruan. Jika organisasi Anda membuat perangkat lunak untuk perangkat Anda, organisasi juga membuat pembaruan untuk perangkat lunak tersebut.

Untuk membuat pembaruan, pilih jenis pembaruan berbasis gambar atau berbasis paket, tergantung pada skenario Anda.

Tip

Anda dapat mencoba tutorial pembaruan berbasis gambar, berbasis paket, atau proksi, atau hanya melihat sampel impor file manifes dari tutorial tersebut untuk referensi.

Buatlah manifes impor Device Update dasar

Setelah Anda memiliki file pembaruan dan terbiasa dengan konsep impor Pembaruan Perangkat dasar, buat manifes impor untuk menjelaskan pembaruan. Meskipun Anda dapat menulis manifes impor JSON secara manual menggunakan editor teks, perintah Azure CLI az iot du init v5 menyederhanakan prosesnya. Untuk informasi selengkapnya tentang skema manifes impor, lihat Skema impor Pembaruan Perangkat dan informasi API.

Perintah az iot du init v5 mengambil argumen berikut. Semua diperlukan kecuali --file, yang berasal dari --step jika tidak ditentukan. Ada sensitivitas posisi antara --step dan --file.

  • Parameter --update-provider, --update-name, dan --update-version menentukan updateId objek yang merupakan pengidentifikasi unik untuk setiap pembaruan.
  • Objek --compat kompatibilitas adalah sekumpulan pasangan nilai nama yang menjelaskan properti perangkat yang kompatibel dengan pembaruan ini. Anda dapat menggunakan sekumpulan properti kompatibilitas tertentu hanya dengan satu kombinasi penyedia dan nama.
  • Parameter --step menentukan pembaruan handler pada perangkat, seperti microsoft/script:1, , microsoft/swupdate:1atau microsoft/apt:1, dan yang terkait properties untuk pembaruan ini. Anda dapat menggunakan --step lebih dari sekali.
  • Parameter --file menentukan path ke file pembaruan Anda. Anda dapat menggunakan --file satu atau beberapa kali.
az iot du update init v5 \
    --update-provider <provider> \
    --update-name <update name> \
    --update-version <update version> \
    --compat <property1>=<value> <property2>=<value> \
    --step handler=<handler> properties=<JSON-formatted handler properties> \
    --file path=<paths and full file names of your update files> 

Perintah berikut menunjukkan az iot du update init v5 contoh nilai:

az iot du update init v5 \
    --update-provider Microsoft \
    --update-name AptUpdate \
    --update-version 1.0.0 \
    --compat manufacturer=Contoso model=Vacuum \
    --step handler=microsoft/script:1 properties='{"installedCriteria": "1.0"}' \
    --file path=/my/apt/manifest/file

Tip

Untuk properti handler, Anda mungkin perlu keluar dari karakter tertentu di JSON Anda. Misalnya, gunakan '\' untuk menghindari tanda kutip ganda jika Anda menjalankan Azure CLI di PowerShell.

Perintah ini az iot du init v5 mendukung skenario tingkat lanjut, termasuk fitur file terkait yang memungkinkan Anda menentukan hubungan antara file pembaruan yang berbeda. Untuk contoh selengkapnya dan daftar lengkap parameter opsional, lihat referensi perintah az iot du init v5 .

Setelah membuat manifes impor dan menyimpannya sebagai file JSON, Anda dapat mengimpor pembaruan. Jika Anda berencana menggunakan portal Azure untuk mengimpor, pastikan untuk memberi nama manifes impor Anda dengan nama manifes format<.importmanifest.json.>

Membuat manifes impor Device Update tingkat lanjut untuk pembaruan proxy

Jika pembaruan Anda lebih kompleks, seperti pembaruan proksi, Anda mungkin perlu membuat beberapa manifes impor. Untuk pembaruan kompleks, Anda dapat menggunakan az iot du update init v5 perintah Azure CLI untuk membuat manifes impor induk dan beberapa jumlah manifes impor anak .

Ganti nilai tempat penampung dalam perintah Azure CLI berikut. Untuk detail tentang nilai yang dapat Anda gunakan, lihat Mengimpor skema dan informasi API. Contoh berikut menunjukkan tiga pembaruan untuk disebarkan ke perangkat, pembaruan induk, dan dua pembaruan anak.

az iot du update init v5 \
    --update-provider <child_1 update provider> \
    --update-name <child_1 update name> \
    --update-version <child_1 update version> \
    --compat manufacturer=<device manufacturer> model=<device model> \
    --step handler=<handler> \
    --file path=<paths and full file names of your update files> 
az iot du update init v5 \
    --update-provider <child_2 update provider> \
    --update-name <child_2 update name> \
    --update-version <child_2 update version> \
    --compat manufacturer=<device manufacturer> model=<device model> \
    --step handler=<handler> \
    --file path=<paths and full file names of your update files> 
az iot du update init v5 \
    --update-provider <parent update provider> \
    --update-name <parent update name> \
    --update-version <parent update version> \
    --compat manufacturer=<device manufacturer> model=<device model> \
    --step handler=<handler> properties=<any handler properties, JSON-formatted> \
    --file path=<paths and full file names of your update files> \
    --step updateId.provider=<child_1 update provider> updateId.name=<child_1 update name> updateId.version=<child_1 update version> \
    --step updateId.provider=<child_2 update provider> updateId.name=<child_2 update name> updateId.version=<child_2 update version>