Bagikan melalui


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"
}