Usare la funzionalità file correlati per fare riferimento a più file di aggiornamento
Usare la funzionalità dei file correlati quando è necessario esprimere relazioni tra file di aggiornamento diversi in un singolo aggiornamento.
Quando si importa un aggiornamento in Aggiornamento dispositivo per hub IoT, è necessario un manifesto di importazione contenente metadati sul payload dell'aggiornamento. I metadati a livello di file nel manifesto di importazione possono essere un elenco flat di file payload di aggiornamento nel caso più semplice. Tuttavia, per scenari più avanzati, la funzionalità file correlati offre un modo per specificare le relazioni tra più file di aggiornamento.
Quando si crea un manifesto di importazione usando la funzionalità file correlati, è possibile aggiungere una raccolta di file correlati a uno o più file del payload primario . Un esempio di questo concetto è la funzionalità di aggiornamento differenziale dell'aggiornamento del dispositivo, che usa i file correlati per specificare un aggiornamento differenziale associato a un file di immagine completo. Nello scenario delta, la funzionalità file correlati consente l'importazione dell'immagine completa e dell'aggiornamento differenziale come singola azione di aggiornamento e quindi una può essere distribuita in un dispositivo. Tuttavia, la funzionalità dei file correlati non è limitata agli aggiornamenti differenziali, poiché è progettata per essere estendibile dai clienti a seconda dei propri scenari univoci.
Come definire i file correlati
La funzionalità dei file correlati è disponibile per i manifesti di importazione che sono la versione 5 o successiva.
Quando si aggiungono file correlati a un manifesto di importazione, includere le informazioni seguenti:
File details
Definire i file correlati specificando il nome file, le dimensioni e l'hash.
Gestore di download
Specificare come elaborare questi file correlati per produrre il file di destinazione. Specificare l'approccio di elaborazione includendo una
downloadHandler
proprietà nel manifesto di importazione. L'inclusionedownloadHandler
è necessaria se si specifica una raccolta non vuota direlatedFiles
in unfile
elemento. È possibile specificare undownloadHandler
oggetto usando una proprietà sempliceid
. Il gestoreid
Download ha un limite di 64 caratteri ASCII.Proprietà dei file correlati
È possibile fornire metadati aggiuntivi per il gestore degli aggiornamenti nel dispositivo per sapere come interpretare e usare correttamente i file specificati come file correlati. Questi metadati vengono aggiunti come parte di un
properties
contenitore di proprietà aglifile
oggetti erelatedFile
.
Per altre informazioni sullo schema di importazione per i file correlati, vedere l'oggetto relatedFiles.
Manifesto di importazione di esempio usando file correlati
Il manifesto di importazione di esempio seguente illustra come viene usata la funzionalità dei file correlati per importare un aggiornamento differenziale. In questo esempio è possibile notare che nella files
sezione è presente un'immagine completa specificata (full-image-file-name
) con un properties
elemento. L'elemento properties
a sua volta ha un elemento associato relatedFiles
sotto di esso. All'interno della relatedFiles
sezione è possibile visualizzare un'altra properties
sezione per il file di aggiornamento delta () e anche un downloadHandler
elemento con l'elenco appropriato id
(delta-from-v1-file-name
microsoft/delta:1
).
Nota
In questo esempio vengono usati gli aggiornamenti differenziali per illustrare come fare riferimento ai file correlati. Per usare gli aggiornamenti differenziali come funzionalità, vedere la documentazione relativa all'aggiornamento differenziale.
{
"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"
}
Esempio di comando init usando file correlati
Il comando az iot du init v5 per la creazione di un manifesto di importazione supporta un parametro facoltativo --related-file
.
Il --related-file
parametro accetta una path
chiave e 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>"}'
Ad esempio:
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
Passaggi successivi
- Informazioni sullo schema del manifesto di importazione
- Informazioni sugli aggiornamenti differenziali