Schéma importu manifestu služby Azure Device Update pro IoT Hub
Při importu aktualizace do služby Azure Device Update pro Iot Hub odešlete také přidružený soubor manifestu importu JSON, který definuje důležité informace o této aktualizaci. Tento článek popisuje schéma použité k vytvoření souboru manifestu importu JSON.
Další informace o konceptech importu manifestu a struktuře souborů najdete v tématu Manifest importu služby Azure Device Update pro IoT Hub. Informace o vytvoření souboru najdete v tématu Příprava aktualizace pro import do služby Device Update pro IoT Hub.
Schéma
Schéma JSON manifestu importu se hostuje na SchemaStore.org a skládá se z následujících vlastností. Nejsou povoleny žádné další vlastnosti.
Vlastnost | Type | Popis | Povinní účastníci |
---|---|---|---|
$schema | string |
Referenční informace ke schématu JSON | No |
updateId | updateId |
Jedinečný identifikátor aktualizace | Ano |
popis | string |
Volitelný popis aktualizace Maximální délka 512 znaků | No |
kompatibilita | compatibility |
Seznam sad vlastností zařízení, se kterými je tato aktualizace kompatibilní. | Ano |
instrukce | instructions |
Aktualizujte pokyny k instalaci. | Ano |
soubory | file [0-10] |
Seznam souborů datové části aktualizace Součet všech velikostí souborů nesmí překročit 2 GB. Pokud jsou všechny kroky instrukce referenčními kroky, může být prázdné nebo null. | No |
manifestVersion | string |
Import verze schématu manifestu Musí být 5.0. | Ano |
createdDateTime | string |
Importovat datum a čas vytvoření manifestu ve formátu ISO 8601, například "2020-10-02T22:18:04.9446744Z" . |
Ano |
Aktualizace objektu
Objekt updateID
je jedinečný identifikátor každé aktualizace.
Vlastnost | Type | Popis | Povinní účastníci |
---|---|---|---|
poskytovatel | string |
Entita, která vytváří nebo přímo zodpovídá za aktualizaci. Zprostředkovatel může být název společnosti. Vzor: ^[a-zA-Z0-9.-]+$ Maximální délka: 64 znaků |
Ano |
Jméno | string |
Identifikátor třídy aktualizace. Název může být třída zařízení nebo název modelu. Vzor: ^[a-zA-Z0-9.-]+$ Maximální délka: 64 znaků |
Ano |
version | string |
Dvoudílná tečka oddělená číselnými čísly verzí oddělených dvěma až čtyřmi částmi Každá část musí být číslo od 0 do 2147483647 a počáteční nuly se zahodí. Vzor: ^\d+(?:\.\d+)+$ Příklady: "1.0" , "2021.11.8" |
Ano |
Nejsou povoleny žádné další vlastnosti.
Příklad:
{
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
}
}
Objekt kompatibility
Objekt compatibility
popisuje 1–5 vlastností zařízení, se kterým je tato aktualizace kompatibilní. Každá vlastnost je string
dvojice název-hodnota typu. Název musí mít délku 1 až 32 znaků a hodnota musí mít délku 1 až 64 znaků. Nemůžete použít stejnou přesnou sadu vlastností kompatibility s více než jednou kombinací zprostředkovatele aktualizací a názvu.
Příklad:
{
"compatibility": [
{
"manufacturer": "Contoso",
"model": "Toaster"
}
]
}
Objekt Instrukce
Objekt instructions
poskytuje pokyny k instalaci aktualizace. Objekt instrukcí obsahuje seznam, který steps
se má provést. Nejsou povoleny žádné další vlastnosti.
Kroky můžou být kódem pro spuštění nebo ukazatele na jiné aktualizace. Objekt kroku je výchozí, inline
pokud není zadaná žádná type
hodnota.
Vlastnost | Type | Popis | Povinní účastníci |
---|---|---|---|
schody | array[1-10] |
Každý prvek v steps poli musí být buď vložený objekt kroku, nebo referenční krok objektu. |
Ano |
Příklad:
{
"instructions": {
"steps": [
{
"type": "inline",
...
},
{
"type": "reference",
...
}
]
}
}
Vložený objekt kroku
Objekt inline
kroku je krok s pokyny k instalaci, který provádí provádění kódu.
Vlastnost | Type | Popis | Povinní účastníci |
---|---|---|---|
type | string |
Typ kroku instrukce, který provádí provádění kódu. Musí být inline . Výchozí hodnota je inline , pokud není zadaná žádná hodnota. |
No |
popis | string |
Volitelný popis kroku instrukce. Maximální délka: 64 znaků. | No |
obslužná rutina | string |
Identita obslužné rutiny v zařízení, které může tento krok provést. Vzor: ^\S+/\S+:\d{1,5}$ Minimální délka: Pět znaků Maximální délka: 32 znaků Příklady: microsoft/script:1 , microsoft/swupdate:2 , microsoft/apt:1 |
Ano |
soubory | string [1-10] |
Názvy aktualizačních souborů definovaných jako objekty souborů, které agent předává obslužné rutině. Každá délka prvku musí být 1–255 znaků. | Ano |
Obslužná rutina | inlineStepHandlerProperties |
Objekty JSON, které agent předá obslužné rutině jako argumenty. | No |
Nejsou povoleny žádné další vlastnosti.
Příklad:
{
"steps": [
{
"description": "pre-install script",
"handler": "microsoft/script:1",
"handlerProperties": {
"arguments": "--pre-install"
},
"files": [
"configure.sh"
]
}
]
}
Referenční objekt kroku
reference
Objekt kroku je instrukční krok instalace pro instalaci další aktualizace.
Vlastnost | Type | Popis | Povinní účastníci |
---|---|---|---|
type | referenceStepType |
Typ kroku instrukce, který nainstaluje jinou aktualizaci. Musí být reference . |
Ano |
popis | stepDescription |
Volitelný popis kroku instrukce. Maximální délka: 64 znaků. | No |
updateId | updateId |
Jedinečný identifikátor aktualizace | Ano |
Nejsou povoleny žádné další vlastnosti.
Příklad:
{
"steps": [
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.HeatingElement",
"version": "1.0"
}
}
]
}
Objekt Soubory
Každý files
objekt je soubor datové části aktualizace, například binární soubor, firmware nebo soubor skriptu, který musí být v rámci aktualizace jedinečný.
Vlastnost | Type | Popis | Povinní účastníci |
---|---|---|---|
filename | string |
Aktualizujte název souboru datové části. Maximální délka: 255 znaků | Ano |
sizeInBytes | number |
Velikost souboru v počtu bajtů Maximální velikost: 2147483648 bajtů | Ano |
Hash | fileHashes |
Hodnoty hash souborů s kódováním Base64 s názvem algoritmu jako klíčem Je třeba zadat alespoň algoritmus SHA-256 a v případě podpory agenta je možné zadat další algoritmy. Podrobnosti o tom, jak vypočítat hodnotu hash, najdete v tématu Hashes objekt . | Ano |
relatedFiles | relatedFile[0-4] |
Kolekce souborů souvisejících s jedním nebo více primárními datovými částmi. Další informace naleznete v relatedFiles objektu. | No |
downloadHandler | downloadHandler |
Určuje, jak zpracovat všechny související soubory. | Ano, pokud používáte relatedFiles . Další informace naleznete v tématu downloadHandler objektu. |
Nejsou povoleny žádné další vlastnosti.
Příklad:
{
"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"
}
}
]
}
Objekt hash
Objekt hashes
obsahuje hodnoty hash souboru s kódováním base64 s názvy algoritmů jako klíče. Musí být zadán alespoň algoritmus SHA-256 a v případě podpory agenta je možné zadat další algoritmy. Příklad správného výpočtu hodnoty hash naleznete Get-AduFileHashes
ve skriptu AduUpdate.psm1 funkce.
Vlastnost | Type | Popis | Povinní účastníci |
---|---|---|---|
sha256 | string |
Hodnota hash souboru s kódováním Base64 pomocí algoritmu SHA-256 | Ano |
Jsou povoleny další vlastnosti.
Příklad:
{
"hashes": {
"sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
}
}
relatedFiles – objekt
Objekt relatedFiles
obsahuje kolekci souborů, které souvisejí s jedním nebo více primárními datovými částmi. Další informace najdete v tématu Použití funkce souvisejících souborů k odkazování na více aktualizačních souborů.
Vlastnost | Type | Popis | Povinní účastníci |
---|---|---|---|
filename | string |
Seznam souvisejících souborů přidružených k primárnímu souboru datové části | Ano |
sizeInBytes | number |
Velikost souboru v počtu bajtů Maximální velikost: 2147483648 bajtů. | Ano |
Hash | fileHashes |
Hodnoty hash souborů s kódováním Base64 s názvem algoritmu jako klíčem Další informace naleznete v tématu Hashes objektu. | Ano |
vlastnosti | relatedFilesProperties [0-5] |
Až pět dvojic klíč-hodnota, kde je klíč omezen na 64 znaků ASCII a hodnota je JObject s až 256 znaky ASCII. | No |
Jsou povoleny další vlastnosti.
Příklad:
"relatedFiles": [
{
"filename": "in1_in2_deltaupdate.dat",
"sizeInBytes": 102910752,
"hashes": {
"sha256": "2MIldV8LkdKenjJasgTHuYi+apgtNQ9FeL2xsV3ikHY="
},
"properties": {
"microsoft.sourceFileHashAlgorithm": "sha256",
"microsoft.sourceFileHash": "YmFYwnEUddq2nZsBAn5v7gCRKdHx+TUntMz5tLwU+24="
}
}
],
objekt downloadHandler
Objekt downloadHandler
určuje, jak zpracovat všechny související soubory.
Vlastnost | Type | Popis | Povinní účastníci |
---|---|---|---|
id | string |
Identifikátor pro downloadHandler . Limit 64 znaků ASCII |
Ano, pokud používáte relatedFiles |
Nejsou povoleny žádné další vlastnosti.
Příklad:
"downloadHandler": {
"id": "microsoft/delta:1"
}