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.