Dela via


Schema för importmanifest för Azure Device Update för IoT Hub

När du importerar en uppdatering till Azure Device Update för Iot Hub skickar du även en associerad JSON-importmanifestfil som definierar viktig information om uppdateringen. I den här artikeln beskrivs det schema som används för att skapa JSON-importmanifestfilen.

Mer information om importmanifestbegrepp och filstruktur finns i Importmanifestet för Azure Device Update för IoT Hub. Information om hur du skapar filen finns i Förbereda en uppdatering för import till Enhetsuppdatering för IoT Hub.

Schema

JSON-schemat för importmanifestet finns på SchemaStore.org och består av följande egenskaper. Inga andra egenskaper tillåts.

Property Type Beskrivning Obligatoriskt
$schema string JSON-schemareferens. Nej
updateId updateId Unik uppdateringsidentifierare. Ja
beskrivning string Valfri uppdateringsbeskrivning. Maximal längd på 512 tecken. Nej
kompatibilitet compatibility Lista över enhetsegenskapsuppsättningar som uppdateringen är kompatibel med. Ja
instruktioner instructions Uppdatera installationsanvisningarna. Ja
filer file [0-10] Lista över uppdateringsnyttolastfiler. Summan av alla filstorlekar får inte överstiga 2 GB. Kan vara tomt eller null om alla instruktionssteg är referenssteg. Nej
manifestVersion string Importera manifestschemaversion. Måste vara 5.0. Ja
createdDateTime string Importera datum och tid för skapande av manifest i ISO 8601-format, till exempel "2020-10-02T22:18:04.9446744Z". Ja

Uppdatera objekt

Objektet updateID är en unik identifierare för varje uppdatering.

Property Type Beskrivning Obligatoriskt
familjeförsörjare string Entitet som skapar eller är direkt ansvarig för uppdateringen. Providern kan vara ett företagsnamn.
Mönster: ^[a-zA-Z0-9.-]+$
Maximal längd: 64 tecken
Ja
Namn string Identifierare för en uppdateringsklass. Namnet kan vara en enhetsklass eller ett modellnamn.
Mönster: ^[a-zA-Z0-9.-]+$
Maximal längd: 64 tecken
Ja
version string Två till fyra delar punktavgränsade numeriska versionsnummer. Varje del måste vara ett tal mellan 0 och 2147483647 och inledande nollor tas bort.
Mönster: ^\d+(?:\.\d+)+$
Exempel: "1.0", "2021.11.8"
Ja

Inga andra egenskaper tillåts.

Till exempel:

{
  "updateId": {
    "provider": "Contoso",
    "name": "Toaster",
    "version": "1.0"
  }
}

Kompatibilitetsobjekt

Objektet compatibility beskriver 1–5 egenskaper för en enhet som uppdateringen är kompatibel med. Varje egenskap är ett string typnamn/värde-par. Namnet måste vara 1–32 tecken långt och värdet måste vara 1–64 tecken långt. Du kan inte använda samma exakta uppsättning kompatibilitetsegenskaper med fler än en uppdateringsprovider och namnkombination.

Till exempel:

{
  "compatibility": [
    {
      "manufacturer": "Contoso",
      "model": "Toaster"
    }
  ]
}

Instruktionsobjekt

Objektet instructions innehåller installationsanvisningarna för uppdateringen. Instruktionsobjektet innehåller en lista över steps som ska utföras. Inga andra egenskaper tillåts.

Steg kan antingen vara kod för att köra eller pekar på andra uppdateringar. Ett stegobjekt är standard om inline inget type värde anges.

Property Type Beskrivning Obligatoriskt
trappsteg array[1-10] Varje element i matrisen steps måste vara antingen ett infogat stegobjekt eller ett referensstegobjekt. Ja

Till exempel:

{
  "instructions": {
    "steps": [
      {
        "type": "inline",
        ...
      },
      {
        "type": "reference",
        ...
      }
    ]
  }
}

Infogat stegobjekt

Ett inline stegobjekt är ett installationsinstruktionssteg som utför kodkörning.

Property Type Beskrivning Obligatoriskt
typ string Instruktionsstegstyp som utför kodkörning. Måste vara inline. Standardvärdet inline är om inget värde anges. Nej
beskrivning string Valfri beskrivning av instruktionssteg. Maximal längd: 64 tecken. Nej
Handler string Identitet för hanteraren på enheten som kan köra det här steget.
Mönster: ^\S+/\S+:\d{1,5}$
Minsta längd: Fem tecken
Maximal längd: 32 tecken
Exempel: microsoft/script:1, microsoft/swupdate:2, microsoft/apt:1
Ja
filer string [1-10] Namn på uppdateringsfiler som definierats som filobjekt som agenten skickar till hanteraren. Varje elementlängd måste vara 1–255 tecken. Ja
handlerProperties inlineStepHandlerProperties JSON-objekt som agenten skickar till hanteraren som argument. Nej

Inga andra egenskaper tillåts.

Till exempel:

{
  "steps": [
    {
      "description": "pre-install script",
      "handler": "microsoft/script:1",
      "handlerProperties": {
        "arguments": "--pre-install"
      },
      "files": [
        "configure.sh"
      ]
    }
  ]
}

Referensstegsobjekt

Ett reference stegobjekt är ett installationsinstruktionssteg för att installera en annan uppdatering.

Property Type Beskrivning Obligatoriskt
typ referenceStepType Instruktionsstegstyp som installerar en annan uppdatering. Måste vara reference. Ja
beskrivning stepDescription Valfri beskrivning av instruktionssteg. Maximal längd: 64 tecken. Nej
updateId updateId Unik uppdateringsidentifierare. Ja

Inga andra egenskaper tillåts.

Till exempel:

{
  "steps": [
    {
      "type": "reference",
      "updateId": {
        "provider": "Contoso",
        "name": "Toaster.HeatingElement",
        "version": "1.0"
      }
    }
  ]
}

Filobjekt

Varje files objekt är en uppdateringsnyttolastfil, till exempel en binär fil, inbyggd programvara eller skriptfil, som måste vara unik i en uppdatering.

Property Type Beskrivning Obligatoriskt
filename string Uppdatera nyttolastfilens namn. Maximal längd: 255 tecken Ja
sizeInBytes number Filstorlek i antal byte. Maximal storlek: 2147483648 byte Ja
Hashes fileHashes Base64-kodade fil-hashar med algoritmnamn som nyckel. Minst SHA-256-algoritm måste anges och ytterligare algoritmer kan anges om de stöds av agenten. Mer information om hur du beräknar hashen finns i Hashes-objektet . Ja
relatedFiles relatedFile[0-4] Samling filer som är relaterade till en eller flera primära nyttolastfiler. Mer information finns i relatedFiles-objektet. Nej
downloadHandler downloadHandler Anger hur du bearbetar relaterade filer. Ja, om du använder relatedFiles. Mer information finns i downloadHandler-objekt.

Inga andra egenskaper tillåts.

Till exempel:

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

Hash-objekt

Objektet hashes innehåller base64-kodade fil-hashar med algoritmnamnen som nycklar. Minst SHA-256-algoritmen måste anges och andra algoritmer kan anges om agenten stöder det. Ett exempel på hur du beräknar hashen korrekt Get-AduFileHashes finns i funktionen i skriptet AduUpdate.psm1.

Property Type Beskrivning Obligatoriskt
sha256 string Base64-kodat filhashvärde med sha-256-algoritm. Ja

Andra egenskaper tillåts.

Till exempel:

{
  "hashes": {
    "sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
  }
}

relatedFiles-objekt

Objektet relatedFiles innehåller en samling filer som är relaterade till en eller flera primära nyttolastfiler. Mer information finns i Använda funktionen relaterade filer för att referera till flera uppdateringsfiler.

Property Type Beskrivning Obligatoriskt
filename string Lista över relaterade filer som är associerade med en primär nyttolastfil. Ja
sizeInBytes number Filstorlek i antal byte. Maximal storlek: 2147483648 byte. Ja
Hashes fileHashes Base64-kodade fil-hashar med algoritmnamn som nyckel. Mer information finns i Hashes-objekt. Ja
Egenskaper relatedFilesProperties [0-5] Upp till fem nyckel/värde-par, där nyckeln är begränsad till 64 ASCII-tecken och värdet är en JObject med upp till 256 ASCII-tecken. Nej

Andra egenskaper tillåts.

Till exempel:

"relatedFiles": [
  {
    "filename": "in1_in2_deltaupdate.dat",
    "sizeInBytes": 102910752,
    "hashes": {
      "sha256": "2MIldV8LkdKenjJasgTHuYi+apgtNQ9FeL2xsV3ikHY="
    },
    "properties": {
      "microsoft.sourceFileHashAlgorithm": "sha256",
      "microsoft.sourceFileHash": "YmFYwnEUddq2nZsBAn5v7gCRKdHx+TUntMz5tLwU+24="
    }
  }
],

downloadHandler-objekt

Objektet downloadHandler anger hur du bearbetar relaterade filer.

Property Type Beskrivning Obligatoriskt
id string Identifierare för downloadHandler. Gräns på 64 ASCII-tecken. Ja, om du använder relatedFiles

Inga andra egenskaper tillåts.

Till exempel:

"downloadHandler": {
  "id": "microsoft/delta:1"
}