Aracılığıyla paylaş


IoT Hub için Cihaz Güncelleştirmesi'ne güncelleştirmeleri aktarma: şema ve diğer bilgiler

Bir güncelleştirmeyi IoT Hub için Cihaz Güncelleştirmesi'ne aktarmak istiyorsanız önce kavramları ve nasıl yapılır kılavuzunu gözden geçirdiğinizden emin olun. İçeri aktarma bildirimi şemasının ayrıntılarıyla ilgileniyorsanız aşağıya bakın.

İçeri aktarma bildirimi JSON şeması SchemaStore.org'de barındırılır.

Şema

Özellik Türü Açıklama Gerekli
$schema string JSON şema başvurusu. Hayır
updateId updateId Benzersiz güncelleştirme tanımlayıcısı. Yes
tarif string İsteğe bağlı güncelleştirme açıklaması.

Maksimum uzunluk: 512 karakter
Hayır
uyumluluk compatibility Bu güncelleştirmenin uyumlu olduğu cihaz özellik kümelerinin listesi. Yes
Talimat -ları instructions Yükleme yönergelerini güncelleştirin. Yes
Dosyaları file [0-10] Güncelleştirme yükü dosyalarının listesi. Tüm dosya boyutlarının toplamı 2 GB'ı aşamaz. Tüm yönerge adımları başvuru adımlarıysa boş veya null olabilir. Hayır
manifestVersion string Bildirim şeması sürümünü içeri aktar. 5.0 olmalıdır. Yes
createdDateTime string Tarih ve saat içeri aktarma bildirimi ISO 8601 biçiminde oluşturuldu.

Örnek: "2020-10-02T22:18:04.9446744Z"
Yes

Ek özelliklere izin verilmez.

updateId nesnesi

updateID nesnesi, her güncelleştirme için benzersiz bir tanımlayıcıdır.

Özellik Türü Açıklama Gerekli
Sağlayıcı string Güncelleştirmeyi oluşturan veya doğrudan sorumlu olan varlık. Bir şirket adı olabilir.

Desen: ^[a-zA-Z0-9.-]+$
Maksimum uzunluk: 64 karakter
Yes
ad string Güncelleştirme sınıfının tanımlayıcısı. Cihaz sınıfı veya model adı olabilir.

Desen: ^[a-zA-Z0-9.-]+$
Maksimum uzunluk: 64 karakter
Yes
version string İki ile dört bölümlü noktalı sayısal sürüm numaraları. Her parça 0 ile 2147483647 arasında bir sayı olmalıdır ve baştaki sıfırlar bırakılır.

Desen: ^\d+(?:\.\d+)+$
Örnekler: "1.0", "2021.11.8"
Yes

Ek özelliklere izin verilmez.

Örneğin:

{
  "updateId": {
    "provider": "Contoso",
    "name": "Toaster",
    "version": "1.0"
  }
}

uyumluluk nesnesi

Uyumluluk nesnesi, bu güncelleştirmenin uyumlu olduğu bir cihazın özelliklerini açıklar.

  • Tür: object
  • En Düşük Özellikler: 1
  • En Fazla Özellik: 5

Her özellik, dize türünde bir ad-değer çiftidir.

  • En Düşük Özellik Adı Uzunluğu: 1
  • En Fazla Özellik Adı Uzunluğu: 32
  • En Düşük Özellik Değeri Uzunluğu: 1
  • En Fazla Özellik Değeri Uzunluğu: 64

Aynı uyumluluk özellikleri kümesi birden fazla güncelleştirme sağlayıcısı ve ad bileşimiyle kullanılamaz.

Örneğin:

{
  "compatibility": [
    {
      "manufacturer": "Contoso",
      "model": "Toaster"
    }
  ]
}

instructions nesnesi

Instructions nesnesi güncelleştirme yükleme yönergelerini sağlar. Instructions nesnesi, gerçekleştirilecek adımların listesini içerir. Adımlar yürütülecek kod veya başka bir güncelleştirmenin işaretçisi olabilir.

Özellik Türü Açıklama Gerekli
Adım -ları array[1-10] Dizideki her öğe bir inlineStep nesnesi veya referenceStep nesnesi olmalıdır. Yes

Ek özelliklere izin verilmez.

Örneğin:

{
  "instructions": {
    "steps": [
      {
        "type": "inline",
        ...
      },
      {
        "type": "reference",
        ...
      }
    ]
  }
}

inlineStep nesnesi

Satır içi adım nesnesi, kod yürütme gerçekleştiren bir yükleme yönerge adımıdır.

Özellik Türü Açıklama Gerekli
type string Kod yürütmeyi gerçekleştiren yönerge adımı türü. olmalıdır inline.

inline Değer sağlanmazsa varsayılan olarak ayarlanır.
Hayır
tarif string İsteğe bağlı yönerge adımı açıklaması.

Maksimum uzunluk: 64 karakter
Hayır
Işleyicisi string Bu adımı yürütebilen cihazdaki işleyicinin kimliği.

Desen: ^\S+/\S+:\d{1,5}$
Minimum uzunluk: 5 karakter
Maksimum uzunluk: 32 karakter
Örnekler: microsoft/script:1, microsoft/swupdate:1, microsoft/apt:1
Yes
Dosyaları string [1-10] Aracının işleyiciye geçireceği dosya nesneleri olarak tanımlanan güncelleştirme dosyalarının adları. Dizideki her öğenin uzunluğu 1 ile 255 karakter arasında olmalıdır. Yes
handlerProperties inlineStepHandlerProperties Aracının işleyiciye bağımsız değişken olarak geçireceği JSON nesnesi. Hayır

Ek özelliklere izin verilmez.

Örneğin:

{
  "steps": [
    {
      "description": "pre-install script",
      "handler": "microsoft/script:1",
      "handlerProperties": {
        "arguments": "--pre-install"
      },
      "files": [
        "configure.sh"
      ]
    }
  ]
}

referenceStep nesnesi

Başvuru adımı nesnesi, başka bir güncelleştirme yükleyen bir yükleme yönerge adımıdır.

Özellik Türü Açıklama Gerekli
type referenceStepType Başka bir güncelleştirme yükleyen yönerge adımı türü. olmalıdır reference. Yes
tarif stepDescription İsteğe bağlı yönerge adımı açıklaması.

Maksimum uzunluk: 64 karakter
Hayır
updateId updateId Benzersiz güncelleştirme tanımlayıcısı. Yes

Ek özelliklere izin verilmez.

Örneğin:

{
  "steps": [
    {
      "type": "reference",
      "updateId": {
        "provider": "Contoso",
        "name": "Toaster.HeatingElement",
        "version": "1.0"
      }
    }
  ]
}

dosya nesnesi

Dosya nesnesi, ikili, üretici yazılımı, betik vb. güncelleştirme yükü dosyasıdır. Her dosya nesnesi bir güncelleştirme içinde benzersiz olmalıdır.

Özellik Türü Açıklama Gerekli
filename string Yük dosya adını güncelleştirin.

Maksimum uzunluk: 255 karakter
Yes
sizeInBytes number Bayt sayısı cinsinden dosya boyutu.

En büyük boyut: 2147483648 bayt
Yes
Karma fileHashes Anahtar olarak algoritma adıyla Base64 ile kodlanmış dosya karmaları. En azından SHA-256 algoritması belirtilmelidir ve aracı tarafından destekleniyorsa ek algoritma belirtilebilir. Karmanın nasıl hesaplanacağı hakkında ayrıntılı bilgi için aşağıya bakın. Yes
relatedFiles relatedFile[0-4] İlgili dosyaların bir veya daha fazla birincil yük dosyanıza toplanması. Hayır
downloadHandler downloadHandler İlgili dosyaların nasıl işlendiği belirtir. Evet, yalnızca relatedFiles kullanılıyorsa

Ek özelliklere izin verilmez.

Örneğin:

{
  "files": [
    {
      "filename": "configure.sh",
      "sizeInBytes": 7558,
      "hashes": {...}
    }
  ]
}

fileHashes nesnesi

Anahtar olarak algoritma adıyla Base64 ile kodlanmış dosya karmaları. En azından SHA-256 algoritması belirtilmelidir ve aracı tarafından destekleniyorsa diğer algoritmalar belirtilebilir. Karmayı doğru hesaplama örneği için AduUpdate.psm1 betiğindeki Get-AduFileHashes işlevine bakın.

Özellik Türü Açıklama Gerekli
sha256 string SHA-256 algoritması kullanılarak Base64 ile kodlanmış dosya karması değeri. Yes

Ek özelliklere izin verilir.

Örneğin:

{
  "hashes": {
    "sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
  }
}

relatedFiles nesnesi

İlgili dosyaların bir veya daha fazla birincil yük dosyanıza toplanması.

Özellik Türü Açıklama Gerekli
filename string Birincil yük dosyasıyla ilişkili ilgili dosyaların listesi. Yes
sizeInBytes number Bayt sayısı cinsinden dosya boyutu.

En büyük boyut: 2147483648 bayt
Yes
Karma fileHashes Anahtar olarak algoritma adıyla Base64 ile kodlanmış dosya karmaları. En azından SHA-256 algoritması belirtilmelidir ve aracı tarafından destekleniyorsa ek algoritma belirtilebilir. Karmanın nasıl hesaplanacağı hakkında ayrıntılı bilgi için aşağıya bakın. Yes
Özellikler relatedFilesProperties [0-5] Anahtarın 64 ASCII karakterle ve değerin JObject (en çok 256 ASCII karakterle) olduğu 5 anahtar-değer çifti sınırı. Hayır

Ek özelliklere izin verilir.

Örneğin:

"relatedFiles": [
  {
    "filename": "in1_in2_deltaupdate.dat",
    "sizeInBytes": 102910752,
    "hashes": {
      "sha256": "2MIldV8LkdKenjJasgTHuYi+apgtNQ9FeL2xsV3ikHY="
    },
    "properties": {
      "microsoft.sourceFileHashAlgorithm": "sha256",
      "microsoft.sourceFileHash": "YmFYwnEUddq2nZsBAn5v7gCRKdHx+TUntMz5tLwU+24="
    }
  }
],

Daha fazla bilgi için bkz . Birden çok güncelleştirme dosyası başvurmak için ilgili dosyalar özelliğini kullanma.

downloadHandler nesnesi

İlgili dosyaların nasıl işlendiği belirtir.

Özellik Türü Açıklama Gerekli
id string downloadHandler için tanımlayıcı. 64 ASCII karakter sınırı. Yes

Ek özelliklere izin verilmez.

Örneğin:

"downloadHandler": {
  "id": "microsoft/delta:1"
}

Sonraki adımlar

İçeri aktarma kavramları hakkında daha fazla bilgi edinin.

Hazırsanız İçeri Aktarma Nasıl Yapılır kılavuzunu deneyin . Bu kılavuz, içeri aktarma işleminde adım adım size yol gösterir.