Skema manifes impor Azure Device Update for IoT Hub
Saat mengimpor pembaruan ke Azure Device Update for Iot Hub, Anda juga mengirimkan file manifes impor JSON terkait yang menentukan informasi penting tentang pembaruan. Artikel ini menjelaskan skema yang digunakan untuk membuat file manifes impor JSON.
Untuk mempelajari selengkapnya tentang mengimpor konsep manifes dan struktur file, lihat Manifes impor Azure Device Update for IoT Hub. Untuk mempelajari cara membuat file, lihat Menyiapkan pembaruan untuk diimpor ke Device Update for IoT Hub.
Skema
Skema JSON manifes impor dihosting di SchemaStore.org dan terdiri dari properti berikut. Tidak ada properti lain yang diizinkan.
Properti | Tipe | Deskripsi | Wajib diisi |
---|---|---|---|
$schema | string |
Referensi skema JSON. | No |
updateId | updateId |
Pengidentifikasi pembaruan unik. | Ya |
description | string |
Deskripsi pembaruan opsional. Panjang maksimum 512 karakter. | No |
Kompatibilitas | compatibility |
Daftar rangkaian properti perangkat yang kompatibel dengan pembaruan ini. | Ya |
instruksi | instructions |
Petunjuk penginstalan pembaruan. | Ya |
file |
file
[0-10]
|
Daftar file payload pembaruan. Jumlah semua ukuran file tidak boleh melebihi 2 GB. Dapat kosong atau null jika semua langkah instruksi adalah langkah-langkah referensi. | No |
manifestVersion | string |
Versi skema manifes impor. Harus 5.0. | Ya |
createdDateTime | string |
Impor tanggal dan waktu pembuatan manifes dalam format ISO 8601, misalnya "2020-10-02T22:18:04.9446744Z" . |
Ya |
Perbarui objek
Objek updateID
adalah pengidentifikasi unik untuk setiap pembaruan.
Properti | Tipe | Deskripsi | Wajib diisi |
---|---|---|---|
penyedia | string |
Entitas yang membuat atau bertanggung jawab langsung atas pembaruan tersebut. Penyedia dapat menjadi nama perusahaan. Pola: ^[a-zA-Z0-9.-]+$ Panjang maksimum: 64 karakter |
Ya |
nama | string |
Pengidentifikasi untuk kelas pembaruan. Nama dapat berupa kelas perangkat atau nama model. Pola: ^[a-zA-Z0-9.-]+$ Panjang maksimum: 64 karakter |
Ya |
versi | string |
Nomor versi numerik yang dipisahkan titik dua hingga empat bagian. Setiap bagian harus berupa angka antara 0 dan 2147483647, dan nol di depan dihilangkan. Pola: ^\d+(?:\.\d+)+$ Contoh: "1.0" , "2021.11.8" |
Ya |
Tidak ada properti lain yang diizinkan.
Contohnya:
{
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
}
}
Objek kompatibilitas
Objek menjelaskan compatibility
1-5 properti perangkat yang kompatibel dengan pembaruan ini. Setiap properti adalah string
pasangan jenis nama-nilai. Panjang nama harus 1-32 karakter dan panjang nilainya harus 1-64 karakter. Anda tidak dapat menggunakan kumpulan properti kompatibilitas yang sama persis dengan lebih dari satu penyedia pembaruan dan kombinasi nama.
Contohnya:
{
"compatibility": [
{
"manufacturer": "Contoso",
"model": "Toaster"
}
]
}
Objek instruksi
Objek instructions
menyediakan instruksi penginstalan pembaruan. Objek instruksi berisi daftar steps
yang akan dilakukan. Tidak ada properti lain yang diizinkan.
Langkah-langkah dapat berupa kode untuk dijalankan atau penunjuk ke pembaruan lain. Objek langkah default ke inline
jika tidak ada type
nilai yang disediakan.
Properti | Tipe | Deskripsi | Wajib diisi |
---|---|---|---|
Langkah-langkah | array[1-10] |
Setiap elemen dalam steps array harus berupa objek langkah sebaris atau objek langkah referensi. |
Ya |
Contohnya:
{
"instructions": {
"steps": [
{
"type": "inline",
...
},
{
"type": "reference",
...
}
]
}
}
Objek langkah sebaris
Objek inline
langkah adalah langkah instruksi penginstalan yang melakukan eksekusi kode.
Properti | Tipe | Deskripsi | Wajib |
---|---|---|---|
jenis | string |
Jenis langkah petunjuk yang melakukan eksekusi kode. Harus berupa inline . Defaultnya diatur ke inline jika tidak ada nilai yang diberikan. |
No |
description | string |
Deskripsi langkah petunjuk opsional. Panjang maksimum: 64 karakter. | No |
Handler | string |
Identitas penangan pada perangkat yang dapat menjalankan langkah ini. Pola: ^\S+/\S+:\d{1,5}$ Panjang minimum: Lima karakter Panjang maksimum: 32 karakter Contoh: microsoft/script:1 , microsoft/swupdate:2 , microsoft/apt:1 |
Ya |
file |
string
[1-10]
|
Nama file pembaruan yang didefinisikan sebagai objek file yang diteruskan agen ke handler. Setiap panjang elemen harus 1-255 karakter. | Ya |
handlerProperties | inlineStepHandlerProperties |
Objek JSON yang diteruskan agen ke handler sebagai argumen. | No |
Tidak ada properti lain yang diizinkan.
Contohnya:
{
"steps": [
{
"description": "pre-install script",
"handler": "microsoft/script:1",
"handlerProperties": {
"arguments": "--pre-install"
},
"files": [
"configure.sh"
]
}
]
}
Objek langkah referensi
Objek reference
langkah adalah langkah instruksi penginstalan untuk menginstal pembaruan lain.
Properti | Tipe | Deskripsi | Wajib |
---|---|---|---|
jenis | referenceStepType |
Jenis langkah petunjuk yang memasang pembaruan lain. Harus berupa reference . |
Ya |
description | stepDescription |
Deskripsi langkah petunjuk opsional. Panjang maksimum: 64 karakter. | No |
updateId | updateId |
Pengidentifikasi pembaruan unik. | Ya |
Tidak ada properti lain yang diizinkan.
Contohnya:
{
"steps": [
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.HeatingElement",
"version": "1.0"
}
}
]
}
Objek file
Setiap files
objek adalah file payload pembaruan, seperti file biner, firmware, atau skrip, yang harus unik dalam pembaruan.
Properti | Tipe | Deskripsi | Wajib diisi |
---|---|---|---|
filename | string |
Perbarui nama file payload. Panjang maksimum: 255 karakter | Ya |
sizeInBytes | number |
Ukuran file dalam jumlah byte. Ukuran maksimum: 2147483648 byte | Ya |
hash | fileHashes |
Hash file yang dikodekan Base64 dengan nama algoritma sebagai kunci. Setidaknya algoritma SHA-256 harus ditentukan, dan algoritma tambahan dapat ditentukan jika didukung oleh agen. Lihat Objek hash untuk detail tentang cara menghitung hash. | Ya |
relatedFiles | relatedFile[0-4] |
Kumpulan file yang terkait dengan satu atau beberapa file payload utama. Untuk informasi selengkapnya, lihat objek relatedFiles. | No |
downloadHandler | downloadHandler |
Menentukan cara memproses file terkait. | Ya, jika menggunakan relatedFiles . Untuk informasi selengkapnya, lihat objek downloadHandler. |
Tidak ada properti lain yang diizinkan.
Contohnya:
{
"files": [
{
"fileName": "full-image-file-name",
"sizeInBytes": 12345,
"hashes": {...},
"relatedFiles": [
{
"fileName": "delta-from-v1-file-name",
"sizeInBytes": 1234,
"hashes": {
"SHA256": "delta-from-v1-file-hash"
},
"properties": {...}
}
],
"downloadHandler": {
"id": "microsoft/delta:1"
}
}
]
}
Objek hash
Objek hashes
berisi hash file yang dikodekan base64 dengan nama algoritma sebagai kunci. Setidaknya algoritma SHA-256 harus ditentukan, dan algoritma lain dapat ditentukan jika didukung oleh agen. Untuk contoh cara menghitung hash dengan benar, lihat Get-AduFileHashes
fungsi dalam skrip AduUpdate.psm1.
Properti | Tipe | Deskripsi | Wajib diisi |
---|---|---|---|
sha256 | string |
Nilai hash file yang dikodekan Base64 menggunakan algoritma SHA-256. | Ya |
Properti lain diperbolehkan.
Contohnya:
{
"hashes": {
"sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
}
}
objek relatedFiles
Objek relatedFiles
berisi kumpulan file yang terkait dengan satu atau beberapa file payload utama. Untuk informasi selengkapnya, lihat Menggunakan fitur file terkait untuk mereferensikan beberapa file pembaruan.
Properti | Tipe | Deskripsi | Wajib diisi |
---|---|---|---|
filename | string |
Daftar file terkait yang terkait dengan file payload utama. | Ya |
sizeInBytes | number |
Ukuran file dalam jumlah byte. Ukuran maksimum: 2147483648 byte. | Ya |
hash | fileHashes |
Hash file yang dikodekan Base64 dengan nama algoritma sebagai kunci. Untuk informasi selengkapnya, lihat Objek hash. | Ya |
properties |
relatedFilesProperties
[0-5]
|
Hingga lima pasangan kunci-nilai, di mana kunci dibatasi hingga 64 karakter ASCII dan nilainya adalah JObject dengan hingga 256 karakter ASCII. | No |
Properti lain diperbolehkan.
Contohnya:
"relatedFiles": [
{
"filename": "in1_in2_deltaupdate.dat",
"sizeInBytes": 102910752,
"hashes": {
"sha256": "2MIldV8LkdKenjJasgTHuYi+apgtNQ9FeL2xsV3ikHY="
},
"properties": {
"microsoft.sourceFileHashAlgorithm": "sha256",
"microsoft.sourceFileHash": "YmFYwnEUddq2nZsBAn5v7gCRKdHx+TUntMz5tLwU+24="
}
}
],
objek downloadHandler
Objek downloadHandler
menentukan cara memproses file terkait.
Properti | Tipe | Deskripsi | Wajib diisi |
---|---|---|---|
id | string |
Pengidentifikasi untuk downloadHandler . Batas 64 karakter ASCII. |
Ya, jika menggunakan relatedFiles |
Tidak ada properti lain yang diizinkan.
Contohnya:
"downloadHandler": {
"id": "microsoft/delta:1"
}