Delen via


Azure Device Update for IoT Hub import manifest schema

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:2microsoft/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"
}