Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn Sie ein Update in Azure Device Update für IoT Hub importieren, übermitteln Sie auch eine zugeordnete JSON-Importmanifestdatei, in der wichtige Informationen zum Update definiert sind. In diesem Artikel wird das Schema beschrieben, das zum Erstellen der JSON-Importmanifestdatei verwendet wird.
Weitere Informationen zu den Konzepten und der Dateistruktur von Importmanifesten finden Sie unter Azure Device Update für IoT Hub-Importmanifest. Informationen zum Erstellen der Datei finden Sie unter Vorbereiten eines Updates für den Import in Device Update for IoT Hub.
Schema
Das JSON-Schema für das Importmanifest wird bei SchemaStore.org gehostet und besteht aus den folgenden Eigenschaften. Andere Eigenschaften sind nicht zulässig.
| Eigentum | Typ | BESCHREIBUNG | Erforderlich |
|---|---|---|---|
| $schema | string |
JSON-Schemareferenz. | Nein |
| Aktualisierungs-ID | updateId |
Eindeutiger Aktualisierungsbezeichner. | Ja |
| Beschreibung | string |
Optionale Beschreibung des Updates. Maximale Länge 512 Zeichen. | Nein |
| Kompatibilität | compatibility |
Liste der Geräteeigenschaftensätze, mit denen dieses Update kompatibel ist. | Ja |
| Anweisungen | instructions |
Installationsanweisungen aktualisieren. | Ja |
| Dateien |
file
[0-10]
|
Liste der Aktualisierungsnutzlastdateien. Die Summe aller Dateigrößen darf 2 GB nicht überschreiten. Kann leer oder null sein, wenn es sich bei allen Anweisungsschritten um Referenzschritte handelt. | Nein |
| manifestVersion | string |
Importieren sie die Manifestschemaversion. Muss 5.0 sein. | Ja |
| ErstellungsdatumUhrzeit | string |
Importieren Sie das Datum und die Uhrzeit der Manifesterstellung im ISO 8601-Format, z. B "2020-10-02T22:18:04.9446744Z". . |
Ja |
Objekt aktualisieren
Das updateID Objekt ist ein eindeutiger Bezeichner für jede Aktualisierung.
| Eigentum | Typ | BESCHREIBUNG | Erforderlich |
|---|---|---|---|
| Anbieter | string |
Entität, die für das Update erstellt oder direkt verantwortlich ist. Bei dem Anbieter kann es sich um einen Firmennamen handeln. Muster: ^[a-zA-Z0-9.-]+$Maximale Länge: 64 Zeichen |
Ja |
| Name | string |
Bezeichner für eine Updateklasse. Der Name kann eine Geräteklasse oder ein Modellname sein. Muster: ^[a-zA-Z0-9.-]+$Maximale Länge: 64 Zeichen |
Ja |
| Version | string |
Zwei- bis vierteilige, punktgetrennte numerische Versionsnummern. Jedes Teil muss eine Zahl zwischen 0 und 2147483647 sein, und führende Nullen werden weggelassen. Muster: ^\d+(?:\.\d+)+$Beispiele: "1.0", "2021.11.8" |
Ja |
Andere Eigenschaften sind nicht zulässig.
Beispiel:
{
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
}
}
Kompatibilitätsobjekt
Das compatibility Objekt beschreibt 1-5 Eigenschaften eines Geräts, mit denen dieses Update kompatibel ist. Jede Eigenschaft ist ein string Typ-Name-Wert-Paar. Der Name muss 1 bis 32 Zeichen lang sein, und der Wert muss 1 bis 64 Zeichen lang sein. Sie können nicht genau denselben Satz von Kompatibilitätseigenschaften mit mehr als einem Updateanbieter und einer Namenskombination verwenden.
Beispiel:
{
"compatibility": [
{
"manufacturer": "Contoso",
"model": "Toaster"
}
]
}
Instructions-Objekt
Das instructions Objekt stellt die Installationsanweisungen für das Update bereit. Das Anweisungsobjekt enthält eine Liste der auszuführenden steps Anweisungen. Andere Eigenschaften sind nicht zulässig.
Bei den Schritten kann es sich entweder um auszuführenden Code oder um Zeiger auf andere Updates handeln. Ein Schrittobjekt wird standardmäßig verwendet inline , wenn kein type Wert angegeben wird.
| Eigentum | Typ | BESCHREIBUNG | Erforderlich |
|---|---|---|---|
| Schritte | array[1-10] |
Jedes Element im steps Array muss entweder ein Inline-Schrittobjekt oder ein Referenzschrittobjekt sein. |
Ja |
Beispiel:
{
"instructions": {
"steps": [
{
"type": "inline",
...
},
{
"type": "reference",
...
}
]
}
}
Inline-Schritt-Objekt
Ein inline Schrittobjekt ist ein Installationsanweisungsschritt, der die Codeausführung ausführt.
| Eigentum | Typ | BESCHREIBUNG | Erforderlich |
|---|---|---|---|
| Typ | string |
Anweisungsschritttyp, der die Codeausführung ausführt. Muss inline sein. Falls kein Wert angegeben wird, wird der Standardwert inline verwendet. |
Nein |
| Beschreibung | string |
Optionale Beschreibung des Anweisungsschritts. Maximale Länge: 64 Zeichen. | Nein |
| Handler | string |
Identität des Handlers auf dem Gerät, das diesen Schritt ausführen kann. Muster: ^\S+/\S+:\d{1,5}$Mindestlänge: Fünf Zeichen Maximale Länge: 32 Zeichen Beispiele: microsoft/script:1, microsoft/swupdate:2, microsoft/apt:1 |
Ja |
| Dateien |
string
[1-10]
|
Namen von Aktualisierungsdateien, die als Dateiobjekte definiert sind, die der Agent an den Handler übergibt. Jedes Element muss 1 bis 255 Zeichen lang sein. | Ja |
| EigenschaftenHandler | inlineStepHandlerProperties |
JSON-Objekte, die der Agent als Argumente an den Handler übergibt. | Nein |
Andere Eigenschaften sind nicht zulässig.
Beispiel:
{
"steps": [
{
"description": "pre-install script",
"handler": "microsoft/script:1",
"handlerProperties": {
"arguments": "--pre-install"
},
"files": [
"configure.sh"
]
}
]
}
Objekt "Referenzschritt"
Ein reference Schrittobjekt ist ein Installationsanweisungsschritt zum Installieren eines weiteren Updates.
| Eigentum | Typ | BESCHREIBUNG | Erforderlich |
|---|---|---|---|
| Typ | referenceStepType |
Anweisungsschritttyp, der ein anderes Update installiert. Muss reference sein. |
Ja |
| Beschreibung | stepDescription |
Optionale Beschreibung des Anweisungsschritts. Maximale Länge: 64 Zeichen. | Nein |
| Aktualisierungs-ID | updateId |
Eindeutiger Aktualisierungsbezeichner. | Ja |
Andere Eigenschaften sind nicht zulässig.
Beispiel:
{
"steps": [
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.HeatingElement",
"version": "1.0"
}
}
]
}
Dateien-Objekt
Bei jedem files Objekt handelt es sich um eine Update-Payload-Datei, z. B. eine Binär-, Firmware- oder Skriptdatei, die innerhalb eines Updates eindeutig sein muss.
| Eigentum | Typ | BESCHREIBUNG | Erforderlich |
|---|---|---|---|
| Dateinamen | string |
Aktualisieren Sie den Namen der Nutzlastdatei. Maximale Länge: 255 Zeichen | Ja |
| GrößeInBytes | number |
Dateigröße in Bytezahl. Maximale Größe: 2147483648 Bytes | Ja |
| Hashes | fileHashes |
Base64-codierte Dateihashes mit Algorithmusname als Schlüssel. Mindestens der SHA-256-Algorithmus muss angegeben werden, und zusätzliche Algorithmen können angegeben werden, wenn sie vom Agenten unterstützt werden. Weitere Informationen zum Berechnen des Hashs finden Sie unter Hashes-Objekt . | Ja |
| Verwandte Dateien | relatedFile[0-4] |
Sammlung von Dateien, die sich auf eine oder mehrere primäre Nutzlastdateien beziehen. Weitere Informationen finden Sie unter relatedFiles-Objekt. | Nein |
| downloadHandler | downloadHandler |
Gibt an, wie zugehörige Dateien verarbeitet werden sollen. | Ja, wenn Sie relatedFiles. Weitere Informationen finden Sie unter downloadHandler-Objekt. |
Andere Eigenschaften sind nicht zulässig.
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. Mindestens der SHA-256-Algorithmus muss angegeben werden, und andere Algorithmen können angegeben werden, wenn der Agent unterstützt wird. Ein Beispiel für die korrekte Berechnung des Hashs finden Sie in der Get-AduFileHashes Funktion im Skript AduUpdate.psm1.
| Eigentum | Typ | BESCHREIBUNG | Erforderlich |
|---|---|---|---|
| SHA256 | string |
Base64-codierter Dateihashwert mit SHA-256-Algorithmus. | Ja |
Andere Eigenschaften sind zulässig.
Beispiel:
{
"hashes": {
"sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
}
}
relatedFiles-Objekt
Das relatedFiles Objekt enthält eine Sammlung von Dateien, die sich auf eine oder mehrere primäre Nutzlastdateien beziehen. Weitere Informationen finden Sie unter Verwenden der Funktion "Zugehörige Dateien", um auf mehrere Updatedateien zu verweisen.
| Eigentum | Typ | BESCHREIBUNG | Erforderlich |
|---|---|---|---|
| Dateinamen | string |
Liste der zugehörigen Dateien, die mit einer primären Nutzlastdatei verknüpft sind. | Ja |
| GrößeInBytes | number |
Dateigröße in Bytezahl. Maximale Größe: 2147483648 Bytes. | Ja |
| Hashes | fileHashes |
Base64-codierte Dateihashes mit Algorithmusname als Schlüssel. Weitere Informationen finden Sie unter Hashes-Objekt. | Ja |
| Eigenschaften |
relatedFilesProperties
[0-5]
|
Bis zu fünf Schlüssel-Wert-Paare, wobei der Schlüssel auf 64 ASCII-Zeichen beschränkt ist und der Wert ein JObject mit bis zu 256 ASCII-Zeichen ist. | Nein |
Andere Eigenschaften sind zulässig.
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 alle zugehörigen Dateien verarbeitet werden sollen.
| Eigentum | Typ | BESCHREIBUNG | Erforderlich |
|---|---|---|---|
| id | string |
Bezeichner für downloadHandler. Maximal 64 ASCII-Zeichen. |
Ja, wenn Sie relatedFiles |
Andere Eigenschaften sind nicht zulässig.
Beispiel:
"downloadHandler": {
"id": "microsoft/delta:1"
}