Importera uppdateringar till Enhetsuppdatering för IoT Hub: schema och annan information
Om du vill importera en uppdatering till Enhetsuppdatering för IoT Hub måste du först granska begreppen och instruktionsguiden. Om du är intresserad av information om själva importmanifestschemat kan du läsa nedan.
JSON-schemat för importmanifestet finns på SchemaStore.org.
Schema
Property | Type | Beskrivning | Obligatoriskt |
---|---|---|---|
$schema | string |
JSON-schemareferens. | Nej |
updateId | updateId |
Unik uppdateringsidentifierare. | Ja |
beskrivning | string |
Valfri uppdateringsbeskrivning. Maximal längd: 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 |
Datum- och tidsimportmanifestet skapades i ISO 8601-format. Exempel: "2020-10-02T22:18:04.9446744Z" |
Ja |
Ytterligare egenskaper tillåts inte.
updateId-objekt
UpdateID-objektet ä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. Det kan vara ett företagsnamn. Mönster: ^[a-zA-Z0-9.-]+$ Maximal längd: 64 tecken |
Ja |
Namn | string |
Identifierare för en uppdateringsklass. Det 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 |
Ytterligare egenskaper tillåts inte.
Till exempel:
{
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
}
}
kompatibilitetsobjekt
Kompatibilitetsobjektet beskriver egenskaperna för en enhet som uppdateringen är kompatibel med.
- Typ:
object
- Minsta egenskaper:
1
- Maximala egenskaper:
5
Varje egenskap är ett namn/värde-par av typen sträng.
- Minsta egenskapsnamnlängd:
1
- Maximal egenskapsnamnlängd:
32
- Minsta egenskapsvärdelängd:
1
- Maximal egenskapsvärdelängd:
64
Samma exakta uppsättning kompatibilitetsegenskaper kan inte användas med fler än en uppdateringsprovider och namnkombination.
Till exempel:
{
"compatibility": [
{
"manufacturer": "Contoso",
"model": "Toaster"
}
]
}
instruktionsobjekt
Instruktionsobjektet innehåller installationsanvisningarna för uppdateringen. Instruktionsobjektet innehåller en lista över steg som ska utföras. Steg kan antingen vara kod för att köra eller en pekare till en annan uppdatering.
Property | Type | Beskrivning | Obligatoriskt |
---|---|---|---|
trappsteg | array[1-10] |
Varje element i matrisen måste vara antingen ett infogatStep-objekt eller ett referenceStep-objekt. | Ja |
Ytterligare egenskaper tillåts inte.
Till exempel:
{
"instructions": {
"steps": [
{
"type": "inline",
...
},
{
"type": "reference",
...
}
]
}
}
inlineStep-objekt
Ett infogat 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: 5 tecken Maximal längd: 32 tecken Exempel: microsoft/script:1 , microsoft/swupdate:1 , microsoft/apt:1 |
Ja |
filer | string [1-10] |
Namn på uppdateringsfiler som definierats som filobjekt som agenten skickar till hanteraren. Varje element i matrisen måste ha en längd på mellan 1 och 255 tecken. | Ja |
handlerProperties | inlineStepHandlerProperties |
JSON-objekt som agenten skickar till hanteraren som argument. | Nej |
Ytterligare egenskaper tillåts inte.
Till exempel:
{
"steps": [
{
"description": "pre-install script",
"handler": "microsoft/script:1",
"handlerProperties": {
"arguments": "--pre-install"
},
"files": [
"configure.sh"
]
}
]
}
referenceStep-objekt
Ett referensstegsobjekt är ett installationsinstruktionssteg som installerar 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 |
Ytterligare egenskaper tillåts inte.
Till exempel:
{
"steps": [
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.HeatingElement",
"version": "1.0"
}
}
]
}
filobjekt
Ett filobjekt är en uppdateringsnyttolastfil, till exempel binär, inbyggd programvara, skript osv. Varje filobjekt måste vara unikt 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 algoritm kan anges om den stöds av agenten. Se nedan för mer information om hur du beräknar hashen. | Ja |
relatedFiles | relatedFile[0-4] |
Samling relaterade filer till en eller flera av dina primära nyttolastfiler. | Nej |
downloadHandler | downloadHandler |
Anger hur du bearbetar relaterade filer. | Ja endast om du använder relatedFiles |
Ytterligare egenskaper tillåts inte.
Till exempel:
{
"files": [
{
"filename": "configure.sh",
"sizeInBytes": 7558,
"hashes": {...}
}
]
}
fileHashes-objekt
Base64-kodade fil-hashar med algoritmnamnet som nyckel. 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 finns i funktionen Get-AduFileHashes i skriptet AduUpdate.psm1.
Property | Type | Beskrivning | Obligatoriskt |
---|---|---|---|
sha256 | string |
Base64-kodat filhashvärde med sha-256-algoritm. | Ja |
Ytterligare egenskaper tillåts.
Till exempel:
{
"hashes": {
"sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
}
}
relatedFiles-objekt
Samling relaterade filer till en eller flera av dina primära nyttolastfiler.
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. Minst SHA-256-algoritm måste anges och ytterligare algoritm kan anges om den stöds av agenten. Se nedan för mer information om hur du beräknar hashen. | Ja |
Egenskaper | relatedFilesProperties [0-5] |
Gränsen på 5 nyckel/värde-par, där nyckeln är begränsad till 64 ASCII-tecken och värdet är JObject (med upp till 256 ASCII-tecken). | Nej |
Ytterligare 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="
}
}
],
Mer information finns i Använda funktionen relaterade filer för att referera till flera uppdateringsfiler.
downloadHandler-objekt
Anger hur du bearbetar relaterade filer.
Property | Type | Beskrivning | Obligatoriskt |
---|---|---|---|
id | string |
Identifierare för downloadHandler. Gräns på 64 ASCII-tecken. | Ja |
Ytterligare egenskaper tillåts inte.
Till exempel:
"downloadHandler": {
"id": "microsoft/delta:1"
}
Nästa steg
Läs mer om importbegrepp.
Om du är redo kan du prova guiden Importera instruktioner, som vägleder dig genom importprocessen steg för steg.