Använd funktionen relaterade filer för att referera till flera uppdateringsfiler
Använd funktionen relaterade filer när du behöver uttrycka relationer mellan olika uppdateringsfiler i en enda uppdatering.
När du importerar en uppdatering till Enhetsuppdatering för IoT Hub krävs ett importmanifest som innehåller metadata om uppdateringsnyttolasten. Metadata på filnivå i importmanifestet kan vara en platt lista över uppdateringsnyttolastfiler i det enklaste fallet. För mer avancerade scenarier är dock funktionen relaterade filer ett sätt för dig att ange relationer mellan flera uppdateringsfiler.
När du skapar ett importmanifest med hjälp av funktionen relaterade filer kan du lägga till en samling relaterade filer till en eller flera av dina primära nyttolastfiler. Ett exempel på det här konceptet är deltauppdateringsfunktionen enhetsuppdatering, som använder relaterade filer för att ange en deltauppdatering som är associerad med en fullständig bildfil. I deltascenariot gör funktionen relaterade filer att den fullständiga avbildningen och deltauppdateringen kan importeras som en enda uppdateringsåtgärd, och sedan kan någon av dem distribueras till en enhet. Funktionen relaterade filer är dock inte begränsad till deltauppdateringar, eftersom den är utformad för att vara utökningsbar för våra kunder beroende på deras egna unika scenarier.
Definiera relaterade filer
Funktionen relaterade filer är tillgänglig för importmanifest som är version 5 eller senare.
När du lägger till relaterade filer i ett importmanifest ska du inkludera följande information:
Filinformation
Definiera relaterade filer genom att ange filnamn, storlek och hash.
En nedladdningshanterare
Ange hur dessa relaterade filer ska bearbetas för att skapa målfilen. Du anger bearbetningsmetod genom att inkludera en
downloadHandler
egenskap i importmanifestet. Du måste inkluderadownloadHandler
om du anger en icke-tom samling irelatedFiles
ettfile
element. Du kan ange endownloadHandler
med hjälp av en enkelid
egenskap. Nedladdningshanterarenid
har en gräns på 64 ASCII-tecken.Egenskaper för relaterade filer
Du kan ange extra metadata för uppdateringshanteraren på enheten för att veta hur du tolkar och korrekt använder de filer som du har angett som relaterade filer. Dessa metadata läggs till som en del av en
properties
egenskapsuppsättning till objektenfile
ochrelatedFile
.
Mer information om importschemat för relaterade filer finns i relatedFiles-objekt.
Exempel på importmanifest med relaterade filer
Följande exempelimportmanifest visar hur funktionen relaterade filer används för att importera en deltauppdatering. I det här exemplet kan du se att det i files
avsnittet finns en fullständig bild angiven (full-image-file-name
) med ett properties
objekt. Objektet properties
har i sin tur ett associerat relatedFiles
objekt under sig. I avsnittet relatedFiles
kan du se ett annat properties
avsnitt för deltauppdateringsfilen (delta-from-v1-file-name
), och även ett downloadHandler
objekt med lämplig id
lista (microsoft/delta:1
).
Anteckning
I det här exemplet används deltauppdateringar för att visa hur du refererar till relaterade filer. Om du vill använda deltauppdateringar som en funktion kan du läsa mer i deltauppdateringsdokumentationen.
{
"updateId": {
// provider, name, version
},
"compatibility": [
{
// manufacturer, model, etc.
}
],
"instructions": {
"steps": [
// Inline steps...
]
},
"files": [
{
// standard file properties
"fileName": "full-image-file-name",
"sizeInBytes": 12345,
"hashes": {
"SHA256": "full-image-file-hash"
},
"mimeType": "application/octet-stream",
// new properties
"properties ": {},
"relatedFiles": [
{
// delta from version 1.0.0.0
// standard file properties
"fileName": "delta-from-v1-file-name",
"sizeInBytes": 1234,
"hashes": {
"SHA256": "delta-from-v1-file-hash"
},
"mimeType": "application/octet-stream",
// new properties
"properties": {
"microsoft.sourceFileHash": "delta-source-file-hash",
"microsoft.sourceFileHashAlgorithm": "sha256"
}
}
],
// handler to download/process our related files
"downloadHandler": {
"id": "microsoft/delta:1"
}
}
],
"createdDateTime": "2021-12-01T01:12:21Z",
"manifestVersion": "5.0"
}
Exempel på init-kommando med relaterade filer
Kommandot az iot du init v5 för att skapa ett importmanifest stöder en valfri --related-file
parameter.
Parametern --related-file
tar en path
och-nyckel properties
:
--related-file path=<replace with path(s) to your delta file(s), including the full file name> properties='{"microsoft.sourceFileHashAlgorithm": "sha256", "microsoft.sourceFileHash": "<replace with the source SWU image file hash>"}'
Exempel:
az iot du update init v5 \
--update-provider Microsoft --update-name myBundled --update-version 2.0 \
--compat manufacturer=Contoso model=SpaceStation \
--step handler=microsoft/script:1 properties='{"arguments": "--pre"}' description="Pre-install script" \
--file path=/my/update/scripts/preinstall.sh downloadHandler=microsoft/delta:1 \
--related-file path=/my/update/scripts/related_preinstall.json properties='{"microsoft.sourceFileHashAlgorithm": "sha256"}' \
--step updateId.provider=Microsoft updateId.name=SwUpdate updateId.version=1.1 \
--step handler=microsoft/script:1 properties='{"arguments": "--post"}' description="Post-install script" \
--file path=/my/update/scripts/postinstall.sh
Nästa steg
- Läs mer om importmanifestschema
- Läs mer om deltauppdateringar