Freigeben über


Importmanifestschema für Azure Device Update für IoT Hub

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"
}