Freigeben über


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 inlinelauten. 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 referencelauten. 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"
}