Importmanifestschema für Azure Device Update for IoT Hub
Wenn Sie ein Update in Azure Device Update for Iot Hub importieren, übermitteln Sie auch eine zugehörige JSON-Importmanifestdatei, die wichtige Informationen zum Update definiert. In diesem Artikel wird das Schema beschrieben, das zum Erstellen der JSON-Importmanifestdatei verwendet wird.
Weitere Informationen zu Importmanifestkonzepten und -dateistruktur finden Sie unter Importmanifest für Azure Device Update for IoT Hub. Informationen zum Erstellen der Datei finden Sie unter Vorbereiten eines Updates zum Importieren in Device Update for IoT Hub.
Schema
Das JSON-Schema des Importmanifests wird auf SchemaStore.org gehostet und besteht aus den folgenden Eigenschaften. Andere Eigenschaften sind nicht zulässig.
Eigenschaft | Typ | Beschreibung | Erforderlich |
---|---|---|---|
$schema | string |
JSON-Schemaverweis | Nein |
updateId | updateId |
Eindeutiger Updatebezeichner | Ja |
description | string |
Optionale Updatebeschreibung Maximale Länge: 512 Zeichen | No |
compatibility | compatibility |
Liste der Geräteeigenschaftensätze, mit denen dieses Update kompatibel ist | Ja |
instructions | instructions |
Installationsanweisungen für das Update | Ja |
files | file [0-10] |
Liste der Nutzdatendateien des Updates. Die Summe aller Dateigrößen darf 2 GB nicht überschreiten. Kann leer oder NULL sein, wenn alle Anweisungsschritte Referenzschritte sind | No |
manifestVersion | string |
Schemaversion des Importmanifests. Muss 5.0 sein. | Ja |
createdDateTime | string |
Erstellungsdatum und -uhrzeit des Importmanifests im ISO 8601-Format, z. B "2020-10-02T22:18:04.9446744Z" |
Ja |
Objekt aktualisieren
Das Objekt updateID
ist ein eindeutiger Bezeichner jedes Updates.
Eigenschaft | Typ | Beschreibung | Erforderlich |
---|---|---|---|
Anbieter | string |
Bei diesem Parameter handelt es sich um die Entität, die das Update erstellt oder verantwortlich für dieses ist. Der provider kann ein Firmenname sein. Muster: ^[a-zA-Z0-9.-]+$ Maximale Länge: 64 Zeichen |
Ja |
name | string |
Bezeichner für eine Klasse von Updates. Der name kann eine Geräteklasse oder ein Modellname sein. Muster: ^[a-zA-Z0-9.-]+$ Maximale Länge: 64 Zeichen |
Ja |
version | string |
Numerische Versionsnummern mit zwei bis vier Teilen, die durch Punkte getrennt sind. Jeder Teil muss eine Zahl zwischen 0 und 2.147.483.647 sein. Führende Nullen werden gelöscht. Muster: ^\d+(?:\.\d+)+$ Beispiele: "1.0" , "2021.11.8" |
Ja |
Andere Eigenschaften sind nicht zulässig.
Zum Beispiel:
{
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
}
}
compatibility-Objekt
Das compatibility
-Objekt beschreibt 1–5 Eigenschaften eines Geräts, mit dem dieses Update kompatibel ist. Jede Eigenschaft ist ein Name/Wert-Paar des Typs string
. Der Name muss 1 bis 32 Zeichen lang sein, und der Wert muss 1 bis 64 Zeichen lang sein. Dieselben Kompatibilitätseigenschaften können nicht bei mehreren Kombinationen aus Updateanbieter und Name verwendet werden.
Zum Beispiel:
{
"compatibility": [
{
"manufacturer": "Contoso",
"model": "Toaster"
}
]
}
instructions-Objekt
Das Objekt instructions
enthält die Installationsanweisungen für das Update. Das Objekt „instructions“ enthält eine Liste der auszuführenden steps
. Andere Eigenschaften sind nicht zulässig.
Bei den Schritten kann es sich entweder um Code zum Ausführen oder Zeiger auf andere Updates handeln. Ein Schrittobjekt verwendet standardmäßig inline
, wenn kein type
-Wert angegeben wird.
Eigenschaft | Typ | Beschreibung | Erforderlich |
---|---|---|---|
steps | array[1-10] |
Jedes Element im steps -Array muss entweder ein inline-Schrittobjekt oder ein reference-Schrittobjekt sein. |
Ja |
Zum Beispiel:
{
"instructions": {
"steps": [
{
"type": "inline",
...
},
{
"type": "reference",
...
}
]
}
}
inline-Schrittobjekt
Ein inline
-Objekt ist ein Installationsanweisungsschritt, in dem Code ausgeführt wird.
Eigenschaft | Typ | Beschreibung | Erforderlich |
---|---|---|---|
type | string |
Typ des Anweisungsschritts, der die Codeausführung durchführt Muss inline lauten. Der Standardwert ist inline , wenn kein Wert angegeben wird. |
Nein |
description | string |
Optionale Beschreibung des Anweisungsschritts Maximale Länge: 64 Zeichen | No |
handler | string |
Identität des Handlers auf dem Gerät, der diesen Schritt ausführen kann. Muster: ^\S+/\S+:\d{1,5}$ Mindestlänge: 5 Zeichen Maximale Länge: 32 Zeichen Beispiele: microsoft/script:1 , microsoft/swupdate:2 , microsoft/apt:1 |
Ja |
files | string [1-10] |
Namen der Updatedateien, die als file-Objekte definiert sind und die der Agent an den Handler übergibt Alle Elemente müssen 1 bis 255 Zeichen lang sein. | Ja |
handlerProperties | inlineStepHandlerProperties |
JSON-Objekte, die der Agent als Argumente an den Handler übergibt | No |
Andere Eigenschaften sind nicht zulässig.
Zum Beispiel:
{
"steps": [
{
"description": "pre-install script",
"handler": "microsoft/script:1",
"handlerProperties": {
"arguments": "--pre-install"
},
"files": [
"configure.sh"
]
}
]
}
reference-Schrittobjekt
Ein reference
-Schrittobjekt ist ein Installationsanweisungsschritt zum Installieren eines anderen Updates.
Eigenschaft | Typ | Beschreibung | Erforderlich |
---|---|---|---|
type | referenceStepType |
Typ des Anweisungsschritt, mit dem ein weiteres Update installiert wird Muss reference lauten. |
Ja |
description | stepDescription |
Optionale Beschreibung des Anweisungsschritts Maximale Länge: 64 Zeichen | No |
updateId | updateId |
Eindeutiger Updatebezeichner | Ja |
Andere Eigenschaften sind nicht zulässig.
Zum Beispiel:
{
"steps": [
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.HeatingElement",
"version": "1.0"
}
}
]
}
files-Objekt
Jedes files
-Objekt ist eine Updatenutzlastdatei, z. B. eine Binärdatei, Firmware oder Skriptdatei, die innerhalb eines Updates eindeutig sein muss.
Eigenschaft | Typ | Beschreibung | Erforderlich |
---|---|---|---|
filename | string |
Aktualisiert den Namen von Nutzdatendateien Maximale Länge: 255 Zeichen | Ja |
sizeInBytes | number |
Dateigröße in Byte Maximale Größe: 2147483648 Bytes | Ja |
hashes | fileHashes |
Base64-codierte Dateihashes mit dem Algorithmusnamen als Schlüssel. Es muss mindestens der SHA-256-Algorithmus angegeben werden. Zusätzliche Algorithmen können angegeben werden, wenn sie vom Agent unterstützt werden. Ausführliche Informationen zum Berechnen des Hash finden Sie unter hashes-Objekt. | Ja |
relatedFiles | relatedFile[0-4] |
Sammlung von Dateien im Zusammenhang mit einer oder mehreren primären Nutzlastdateien Weitere Informationen finden Sie unter relatedFiles-Objekt. | No |
downloadHandler | downloadHandler |
Gibt an, wie zugehörige Dateien verarbeitet werden. | Ja, bei Verwendung von relatedFiles Weitere Informationen finden Sie unter downloadHandler-Objekt. |
Andere Eigenschaften sind nicht zulässig.
Zum Beispiel:
{
"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-Objekt
Das hashes
-Objekt enthält base64-codierte Dateihashes mit den Algorithmusnamen als Schlüssel. Es muss mindestens der SHA-256-Algorithmus angegeben werden. Ein anderen Algorithmus kann angegeben werden, wenn er vom Agent unterstützt wird. Ein Beispiel für die korrekte Hashberechnung finden Sie unter der Get-AduFileHashes
-Funktion im AduUpdate.psm1-Skript.
Eigenschaft | Typ | Beschreibung | Erforderlich |
---|---|---|---|
sha256 | string |
Base64-codierter Dateihashwert mit SHA-256-Algorithmus | Ja |
Andere Eigenschaften sind zulässig.
Zum Beispiel:
{
"hashes": {
"sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
}
}
relatedFiles-Objekt
Das relatedFiles
-Objekt enthält eine Sammlung von Dateien, die mit einer oder mehreren primären Nutzlastdateien zusammenhängen. Weitere Informationen finden Sie unter Verwenden des Features „Zugehörige Dateien“ zum Verweisen auf mehrere Updatedateien.
Eigenschaft | Typ | Beschreibung | Erforderlich |
---|---|---|---|
filename | string |
Liste der zugehörigen Dateien, die einer primären Nutzdatendatei zugeordnet sind. | Ja |
sizeInBytes | number |
Dateigröße in Byte Maximale Größe: 2.147.483.648 Bytes | Ja |
hashes | fileHashes |
Base64-codierte Dateihashes mit dem Algorithmusnamen als Schlüssel. Weitere Informationen finden Sie unter hashes-Objekt. | Ja |
properties | relatedFilesProperties [0-5] |
Bis zu 5 Schlüssel-Wert-Paaren, in denen der Schlüssel auf 64 ASCII-Zeichen beschränkt und der Wert ein „JObject“ mit bis zu 256 ASCII-Zeichen ist. | No |
Andere Eigenschaften sind zulässig.
Zum Beispiel:
"relatedFiles": [
{
"filename": "in1_in2_deltaupdate.dat",
"sizeInBytes": 102910752,
"hashes": {
"sha256": "2MIldV8LkdKenjJasgTHuYi+apgtNQ9FeL2xsV3ikHY="
},
"properties": {
"microsoft.sourceFileHashAlgorithm": "sha256",
"microsoft.sourceFileHash": "YmFYwnEUddq2nZsBAn5v7gCRKdHx+TUntMz5tLwU+24="
}
}
],
downloadHandler-Objekt
Das downloadHandler
-Objekt gibt an, wie zugehörige Dateien verarbeitet werden.
Eigenschaft | Typ | Beschreibung | Erforderlich |
---|---|---|---|
id | string |
Bezeichner für downloadHandler Grenzwert von 64 ASCII-Zeichen. |
Ja, bei Verwendung von relatedFiles |
Andere Eigenschaften sind nicht zulässig.
Zum Beispiel:
"downloadHandler": {
"id": "microsoft/delta:1"
}