Azure Device Update for IoT Hub import manifest schemaWanneer u een update importeert in Azure Device Update voor Iot Hub, dient u ook een gekoppeld JSON-importmanifestbestand in dat belangrijke informatie over de update definieert. In dit artikel wordt het schema beschreven dat wordt gebruikt om het JSON-importmanifestbestand te maken.
Zie Het importmanifest van Azure Device Update voor IoT Hub voor meer informatie over het importeren van manifestconcepten en bestandsstructuur. Zie Een update voorbereiden om te importeren in Device Update for IoT Hub voor meer informatie over het maken van het bestand.
Schema
Het JSON-importmanifestschema wordt gehost op SchemaStore.org en bestaat uit de volgende eigenschappen. Er zijn geen andere eigenschappen toegestaan.
Eigenschap
Type
Beschrijving
Vereist
$schema
string
JSON-schemareferentie.
Nee
updateId
updateId
Unieke update-id.
Ja
beschrijving
string
Optionele beschrijving van update. Maximale lengte van 512 tekens.
Nee
compatibiliteit
compatibility
De lijst met apparaateigenschapseigenschappen stelt dat deze update compatibel is met.
Ja
Instructies
instructions
Installatie-instructies bijwerken.
Ja
archief
file
[0-10]
Lijst met payloadbestanden bijwerken. De som van alle bestandsgrootten mag niet groter zijn dan 2 GB. Kan leeg of null zijn als alle instructiestappen verwijzingsstappen zijn.
Nee
manifestVersion
string
De schemaversie van het manifest importeren. Moet 5,0 zijn.
Ja
createdDateTime
string
Importeer bijvoorbeeld de aanmaakdatum en -tijd van het manifest in ISO 8601-indeling "2020-10-02T22:18:04.9446744Z"
.
Ja
Object bijwerken
Het updateID
object is een unieke id voor elke update.
Eigenschap
Type
Beschrijving
Vereist
aanbieder
string
Entiteit die de update maakt of rechtstreeks verantwoordelijk is. De provider kan een bedrijfsnaam zijn.
Patroon: ^[a-zA-Z0-9.-]+$
Maximale lengte: 64 tekens
Ja
name
string
Id voor een updateklasse. De naam kan een apparaatklasse of modelnaam zijn.
Patroon: ^[a-zA-Z0-9.-]+$
Maximale lengte: 64 tekens
Ja
version
string
Met twee tot vier delen gescheiden numerieke versienummers van twee tot vier delen. Elk deel moet een getal tussen 0 en 2147483647 zijn en voorloopnullen worden verwijderd.
Patroon: ^\d+(?:\.\d+)+$
Voorbeelden: "1.0"
, "2021.11.8"
Ja
Er zijn geen andere eigenschappen toegestaan.
Voorbeeld:
{
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
}
}
Compatibiliteitsobject
Het compatibility
object beschrijft 1-5 eigenschappen van een apparaat waarmee deze update compatibel is. Elke eigenschap is een string
type naam-waardepaar. De naam moet 1-32 tekens lang zijn en de waarde moet 1-64 tekens lang zijn. U kunt niet dezelfde exacte set compatibiliteitseigenschappen gebruiken met meer dan één combinatie van updateproviders en naam.
Voorbeeld:
{
"compatibility": [
{
"manufacturer": "Contoso",
"model": "Toaster"
}
]
}
Instructies-object
Het instructions
object bevat de installatie-instructies voor updates. Het instructiesobject bevat een lijst met steps
te uitvoeren instructies. Er zijn geen andere eigenschappen toegestaan.
Stappen kunnen code zijn om uit te voeren of om naar andere updates te verwijzen. Een stapobject wordt standaard ingesteld inline
als er geen type
waarde wordt opgegeven.
Eigenschap
Type
Beschrijving
Vereist
stappen
array[1-10]
Elk element in de steps
matrix moet een inlinestapobject of een referentiestapobject zijn.
Ja
Voorbeeld:
{
"instructions": {
"steps": [
{
"type": "inline",
...
},
{
"type": "reference",
...
}
]
}
}
Inlinestapobject
Een inline
stapobject is een installatie-instructiestap waarmee code-uitvoering wordt uitgevoerd.
Eigenschap
Type
Beschrijving
Vereist
type
string
Instructiestaptype waarmee code-uitvoering wordt uitgevoerd. Moet inline
zijn. Standaard ingesteld inline
op als er geen waarde wordt opgegeven.
Nee
beschrijving
string
Optionele beschrijving van de instructiestap. Maximale lengte: 64 tekens.
Nee
Handler
string
Identiteit van de handler op het apparaat dat deze stap kan uitvoeren.
Patroon: ^\S+/\S+:\d{1,5}$
Minimale lengte: vijf tekens
Maximale lengte: 32 tekens
Voorbeelden: microsoft/script:1
, microsoft/swupdate:2
microsoft/apt:1
Ja
archief
string
[1-10]
Namen van updatebestanden die zijn gedefinieerd als bestandsobjecten die de agent doorgeeft aan de handler. Elke elementlengte moet 1-255 tekens lang zijn.
Ja
handlerProperties
inlineStepHandlerProperties
JSON-objecten die de agent als argumenten doorgeeft aan de handler.
Nee
Er zijn geen andere eigenschappen toegestaan.
Voorbeeld:
{
"steps": [
{
"description": "pre-install script",
"handler": "microsoft/script:1",
"handlerProperties": {
"arguments": "--pre-install"
},
"files": [
"configure.sh"
]
}
]
}
Referentiestapobject
Een reference
stapobject is een installatie-instructiestap voor het installeren van een andere update.
Eigenschap
Type
Beschrijving
Vereist
type
referenceStepType
Instructiestaptype waarmee een andere update wordt geïnstalleerd. Moet reference
zijn.
Ja
beschrijving
stepDescription
Optionele beschrijving van de instructiestap. Maximale lengte: 64 tekens.
Nee
updateId
updateId
Unieke update-id.
Ja
Er zijn geen andere eigenschappen toegestaan.
Voorbeeld:
{
"steps": [
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.HeatingElement",
"version": "1.0"
}
}
]
}
Bestandsobject
Elk files
object is een payloadbestand voor updates, zoals een binair, firmware- of scriptbestand, dat uniek moet zijn binnen een update.
Eigenschap
Type
Beschrijving
Vereist
filename
string
Werk de naam van het nettoladingbestand bij. Maximale lengte: 255 tekens
Ja
sizeInBytes
number
Bestandsgrootte in het aantal bytes. Maximale grootte: 2147483648 bytes
Ja
Hashes
fileHashes
Met Base64 gecodeerde bestands-hashes met algoritmenaam als sleutel. Ten minste SHA-256-algoritme moet worden opgegeven en er kunnen extra algoritmen worden opgegeven als deze worden ondersteund door de agent. Zie Hashes-object voor meer informatie over het berekenen van de hash.
Ja
relatedFiles
relatedFile[0-4]
Verzameling bestanden met betrekking tot een of meer primaire nettoladingbestanden. Zie relatedFiles-object voor meer informatie.
Nee
downloadHandler
downloadHandler
Hiermee geeft u op hoe u gerelateerde bestanden verwerkt.
Ja, als u relatedFiles
. Zie downloadHandler-object voor meer informatie.
Er zijn geen andere eigenschappen toegestaan.
Voorbeeld:
{
"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"
}
}
]
}
Hashes-object
Het hashes
object bevat met base64 gecodeerde bestands-hashes met de algoritmenamen als sleutels. Ten minste het SHA-256-algoritme moet worden opgegeven en andere algoritmen kunnen worden opgegeven als dit wordt ondersteund door de agent. Zie de functie in het script AduUpdate.psm1 voor een voorbeeld van het correct berekenen van de Get-AduFileHashes
hash.
Eigenschap
Type
Beschrijving
Vereist
sha256
string
Met base64 gecodeerde hashwaarde voor bestanden met behulp van een SHA-256-algoritme.
Ja
Andere eigenschappen zijn toegestaan.
Voorbeeld:
{
"hashes": {
"sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
}
}
relatedFiles-object
Het relatedFiles
object bevat een verzameling bestanden die zijn gerelateerd aan een of meer primaire nettoladingbestanden. Zie De functie Gerelateerde bestanden gebruiken om te verwijzen naar meerdere updatebestanden voor meer informatie.
Eigenschap
Type
Beschrijving
Vereist
filename
string
Lijst met gerelateerde bestanden die zijn gekoppeld aan een primair nettoladingbestand.
Ja
sizeInBytes
number
Bestandsgrootte in het aantal bytes. Maximale grootte: 2147483648 bytes.
Ja
Hashes
fileHashes
Met Base64 gecodeerde bestands-hashes met algoritmenaam als sleutel. Zie Hashes-object voor meer informatie.
Ja
properties
relatedFilesProperties
[0-5]
Maximaal vijf sleutel-waardeparen, waarbij de sleutel is beperkt tot 64 ASCII-tekens en de waarde een JObject is met maximaal 256 ASCII-tekens.
Nee
Andere eigenschappen zijn toegestaan.
Voorbeeld:
"relatedFiles": [
{
"filename": "in1_in2_deltaupdate.dat",
"sizeInBytes": 102910752,
"hashes": {
"sha256": "2MIldV8LkdKenjJasgTHuYi+apgtNQ9FeL2xsV3ikHY="
},
"properties": {
"microsoft.sourceFileHashAlgorithm": "sha256",
"microsoft.sourceFileHash": "YmFYwnEUddq2nZsBAn5v7gCRKdHx+TUntMz5tLwU+24="
}
}
],
downloadHandler-object
Het downloadHandler
object geeft aan hoe gerelateerde bestanden moeten worden verwerkt.
Eigenschap
Type
Beschrijving
Vereist
id
string
Id voor downloadHandler
. Limiet van 64 ASCII-tekens.
Ja, als u relatedFiles
Er zijn geen andere eigenschappen toegestaan.
Voorbeeld:
"downloadHandler": {
"id": "microsoft/delta:1"
}
Gerelateerde inhoud
Wanneer u een update importeert in Azure Device Update voor Iot Hub, dient u ook een gekoppeld JSON-importmanifestbestand in dat belangrijke informatie over de update definieert. In dit artikel wordt het schema beschreven dat wordt gebruikt om het JSON-importmanifestbestand te maken.
Zie Het importmanifest van Azure Device Update voor IoT Hub voor meer informatie over het importeren van manifestconcepten en bestandsstructuur. Zie Een update voorbereiden om te importeren in Device Update for IoT Hub voor meer informatie over het maken van het bestand.
Schema
Het JSON-importmanifestschema wordt gehost op SchemaStore.org en bestaat uit de volgende eigenschappen. Er zijn geen andere eigenschappen toegestaan.
Eigenschap | Type | Beschrijving | Vereist |
---|---|---|---|
$schema | string |
JSON-schemareferentie. | Nee |
updateId | updateId |
Unieke update-id. | Ja |
beschrijving | string |
Optionele beschrijving van update. Maximale lengte van 512 tekens. | Nee |
compatibiliteit | compatibility |
De lijst met apparaateigenschapseigenschappen stelt dat deze update compatibel is met. | Ja |
Instructies | instructions |
Installatie-instructies bijwerken. | Ja |
archief | file [0-10] |
Lijst met payloadbestanden bijwerken. De som van alle bestandsgrootten mag niet groter zijn dan 2 GB. Kan leeg of null zijn als alle instructiestappen verwijzingsstappen zijn. | Nee |
manifestVersion | string |
De schemaversie van het manifest importeren. Moet 5,0 zijn. | Ja |
createdDateTime | string |
Importeer bijvoorbeeld de aanmaakdatum en -tijd van het manifest in ISO 8601-indeling "2020-10-02T22:18:04.9446744Z" . |
Ja |
Object bijwerken
Het updateID
object is een unieke id voor elke update.
Eigenschap | Type | Beschrijving | Vereist |
---|---|---|---|
aanbieder | string |
Entiteit die de update maakt of rechtstreeks verantwoordelijk is. De provider kan een bedrijfsnaam zijn. Patroon: ^[a-zA-Z0-9.-]+$ Maximale lengte: 64 tekens |
Ja |
name | string |
Id voor een updateklasse. De naam kan een apparaatklasse of modelnaam zijn. Patroon: ^[a-zA-Z0-9.-]+$ Maximale lengte: 64 tekens |
Ja |
version | string |
Met twee tot vier delen gescheiden numerieke versienummers van twee tot vier delen. Elk deel moet een getal tussen 0 en 2147483647 zijn en voorloopnullen worden verwijderd. Patroon: ^\d+(?:\.\d+)+$ Voorbeelden: "1.0" , "2021.11.8" |
Ja |
Er zijn geen andere eigenschappen toegestaan.
Voorbeeld:
{
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
}
}
Compatibiliteitsobject
Het compatibility
object beschrijft 1-5 eigenschappen van een apparaat waarmee deze update compatibel is. Elke eigenschap is een string
type naam-waardepaar. De naam moet 1-32 tekens lang zijn en de waarde moet 1-64 tekens lang zijn. U kunt niet dezelfde exacte set compatibiliteitseigenschappen gebruiken met meer dan één combinatie van updateproviders en naam.
Voorbeeld:
{
"compatibility": [
{
"manufacturer": "Contoso",
"model": "Toaster"
}
]
}
Instructies-object
Het instructions
object bevat de installatie-instructies voor updates. Het instructiesobject bevat een lijst met steps
te uitvoeren instructies. Er zijn geen andere eigenschappen toegestaan.
Stappen kunnen code zijn om uit te voeren of om naar andere updates te verwijzen. Een stapobject wordt standaard ingesteld inline
als er geen type
waarde wordt opgegeven.
Eigenschap | Type | Beschrijving | Vereist |
---|---|---|---|
stappen | array[1-10] |
Elk element in de steps matrix moet een inlinestapobject of een referentiestapobject zijn. |
Ja |
Voorbeeld:
{
"instructions": {
"steps": [
{
"type": "inline",
...
},
{
"type": "reference",
...
}
]
}
}
Inlinestapobject
Een inline
stapobject is een installatie-instructiestap waarmee code-uitvoering wordt uitgevoerd.
Eigenschap | Type | Beschrijving | Vereist |
---|---|---|---|
type | string |
Instructiestaptype waarmee code-uitvoering wordt uitgevoerd. Moet inline zijn. Standaard ingesteld inline op als er geen waarde wordt opgegeven. |
Nee |
beschrijving | string |
Optionele beschrijving van de instructiestap. Maximale lengte: 64 tekens. | Nee |
Handler | string |
Identiteit van de handler op het apparaat dat deze stap kan uitvoeren. Patroon: ^\S+/\S+:\d{1,5}$ Minimale lengte: vijf tekens Maximale lengte: 32 tekens Voorbeelden: microsoft/script:1 , microsoft/swupdate:2 microsoft/apt:1 |
Ja |
archief | string [1-10] |
Namen van updatebestanden die zijn gedefinieerd als bestandsobjecten die de agent doorgeeft aan de handler. Elke elementlengte moet 1-255 tekens lang zijn. | Ja |
handlerProperties | inlineStepHandlerProperties |
JSON-objecten die de agent als argumenten doorgeeft aan de handler. | Nee |
Er zijn geen andere eigenschappen toegestaan.
Voorbeeld:
{
"steps": [
{
"description": "pre-install script",
"handler": "microsoft/script:1",
"handlerProperties": {
"arguments": "--pre-install"
},
"files": [
"configure.sh"
]
}
]
}
Referentiestapobject
Een reference
stapobject is een installatie-instructiestap voor het installeren van een andere update.
Eigenschap | Type | Beschrijving | Vereist |
---|---|---|---|
type | referenceStepType |
Instructiestaptype waarmee een andere update wordt geïnstalleerd. Moet reference zijn. |
Ja |
beschrijving | stepDescription |
Optionele beschrijving van de instructiestap. Maximale lengte: 64 tekens. | Nee |
updateId | updateId |
Unieke update-id. | Ja |
Er zijn geen andere eigenschappen toegestaan.
Voorbeeld:
{
"steps": [
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.HeatingElement",
"version": "1.0"
}
}
]
}
Bestandsobject
Elk files
object is een payloadbestand voor updates, zoals een binair, firmware- of scriptbestand, dat uniek moet zijn binnen een update.
Eigenschap | Type | Beschrijving | Vereist |
---|---|---|---|
filename | string |
Werk de naam van het nettoladingbestand bij. Maximale lengte: 255 tekens | Ja |
sizeInBytes | number |
Bestandsgrootte in het aantal bytes. Maximale grootte: 2147483648 bytes | Ja |
Hashes | fileHashes |
Met Base64 gecodeerde bestands-hashes met algoritmenaam als sleutel. Ten minste SHA-256-algoritme moet worden opgegeven en er kunnen extra algoritmen worden opgegeven als deze worden ondersteund door de agent. Zie Hashes-object voor meer informatie over het berekenen van de hash. | Ja |
relatedFiles | relatedFile[0-4] |
Verzameling bestanden met betrekking tot een of meer primaire nettoladingbestanden. Zie relatedFiles-object voor meer informatie. | Nee |
downloadHandler | downloadHandler |
Hiermee geeft u op hoe u gerelateerde bestanden verwerkt. | Ja, als u relatedFiles . Zie downloadHandler-object voor meer informatie. |
Er zijn geen andere eigenschappen toegestaan.
Voorbeeld:
{
"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"
}
}
]
}
Hashes-object
Het hashes
object bevat met base64 gecodeerde bestands-hashes met de algoritmenamen als sleutels. Ten minste het SHA-256-algoritme moet worden opgegeven en andere algoritmen kunnen worden opgegeven als dit wordt ondersteund door de agent. Zie de functie in het script AduUpdate.psm1 voor een voorbeeld van het correct berekenen van de Get-AduFileHashes
hash.
Eigenschap | Type | Beschrijving | Vereist |
---|---|---|---|
sha256 | string |
Met base64 gecodeerde hashwaarde voor bestanden met behulp van een SHA-256-algoritme. | Ja |
Andere eigenschappen zijn toegestaan.
Voorbeeld:
{
"hashes": {
"sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
}
}
relatedFiles-object
Het relatedFiles
object bevat een verzameling bestanden die zijn gerelateerd aan een of meer primaire nettoladingbestanden. Zie De functie Gerelateerde bestanden gebruiken om te verwijzen naar meerdere updatebestanden voor meer informatie.
Eigenschap | Type | Beschrijving | Vereist |
---|---|---|---|
filename | string |
Lijst met gerelateerde bestanden die zijn gekoppeld aan een primair nettoladingbestand. | Ja |
sizeInBytes | number |
Bestandsgrootte in het aantal bytes. Maximale grootte: 2147483648 bytes. | Ja |
Hashes | fileHashes |
Met Base64 gecodeerde bestands-hashes met algoritmenaam als sleutel. Zie Hashes-object voor meer informatie. | Ja |
properties | relatedFilesProperties [0-5] |
Maximaal vijf sleutel-waardeparen, waarbij de sleutel is beperkt tot 64 ASCII-tekens en de waarde een JObject is met maximaal 256 ASCII-tekens. | Nee |
Andere eigenschappen zijn toegestaan.
Voorbeeld:
"relatedFiles": [
{
"filename": "in1_in2_deltaupdate.dat",
"sizeInBytes": 102910752,
"hashes": {
"sha256": "2MIldV8LkdKenjJasgTHuYi+apgtNQ9FeL2xsV3ikHY="
},
"properties": {
"microsoft.sourceFileHashAlgorithm": "sha256",
"microsoft.sourceFileHash": "YmFYwnEUddq2nZsBAn5v7gCRKdHx+TUntMz5tLwU+24="
}
}
],
downloadHandler-object
Het downloadHandler
object geeft aan hoe gerelateerde bestanden moeten worden verwerkt.
Eigenschap | Type | Beschrijving | Vereist |
---|---|---|---|
id | string |
Id voor downloadHandler . Limiet van 64 ASCII-tekens. |
Ja, als u relatedFiles |
Er zijn geen andere eigenschappen toegestaan.
Voorbeeld:
"downloadHandler": {
"id": "microsoft/delta:1"
}