Share via


Preparare un aggiornamento per l'importazione in Aggiornamento dispositivi per hub IoT

Informazioni su come ottenere un nuovo aggiornamento e preparare l'aggiornamento per l'importazione in Aggiornamento dispositivi per hub IoT.

Prerequisiti

  • Accesso a un hub IoT con Aggiornamento del dispositivo per hub IoT abilitato.

  • Un ambiente dell'interfaccia della riga di comando di Azure:

    1. Accedere all'interfaccia della riga di comando di Azure usando il comando az login .
    2. Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
    3. Quando richiesto, installare le estensioni dell'interfaccia della riga di comando di Azure al primo utilizzo. I comandi in questo articolo usano l'estensione azure-iot . Eseguire az extension update --name azure-iot per assicurarsi di usare la versione più recente dell'estensione.

Suggerimento

I comandi dell'interfaccia della riga di comando di Azure in questo articolo usano il carattere barra \ rovesciata per la continuazione della riga in modo che gli argomenti del comando siano più facili da leggere. Questa sintassi funziona negli ambienti Bash. Se si eseguono questi comandi in PowerShell, sostituire ogni barra rovesciata con una barra rovesciata "" o rimuoverli completamente.

Ottenere un aggiornamento per i dispositivi

Ora che è stato configurato l'aggiornamento dei dispositivi ed è stato effettuato il provisioning dei dispositivi, sono necessari i file di aggiornamento che verranno distribuiti in tali dispositivi.

  • Se hai acquistato dispositivi da un oem (Original Equipment Manufacturer) o un integratore di soluzioni, l'organizzazione fornirà più probabilmente i file di aggiornamento, senza dover creare gli aggiornamenti. Contattare l'OEM o l'integratore di soluzioni per scoprire come rendere disponibili gli aggiornamenti.

  • Se l'organizzazione crea software per i dispositivi usati, lo stesso gruppo creerà gli aggiornamenti per tale software.

Quando si crea un aggiornamento da distribuire con Aggiornamento dispositivi per hub IoT, iniziare con l'approccio basato su immagini o basato su pacchetto a seconda dello scenario.

Creare un manifesto di importazione di Aggiornamento dispositivi di base

Dopo aver creato i file di aggiornamento, creare un manifesto di importazione per descrivere l'aggiornamento. Se non è già stato fatto, acquisire familiarità con i concetti di importazione di base. Anche se è possibile creare manualmente un file JSON del manifesto di importazione usando un editor di testo, l'interfaccia della riga di comando di Azure semplifica notevolmente il processo e viene usato negli esempi seguenti.

Suggerimento

Se non è già stato fatto, provare le esercitazioni sull'aggiornamento basato su immagini, basate su pacchetti o proxy. È anche possibile visualizzare solo file manifesto di importazione di esempio da tali esercitazioni per riferimento.

Il comando az iot du init v5 accetta gli argomenti seguenti:

  • --update-provider, --update-namee --update-version: questi tre parametri definiscono l'oggetto updateId che è un identificatore univoco per ogni aggiornamento.
  • --compat: l'oggetto compatibilità è un set di coppie nome-valore che descrivono le proprietà di un dispositivo compatibile con questo aggiornamento.
    • Lo stesso set esatto di proprietà di compatibilità non può essere usato con più provider e combinazione di nomi.
  • --step: gestore di aggiornamento nel dispositivo (ad esempio, microsoft/script:1, microsoft/swupdate:1o microsoft/apt:1) e le relative proprietà associate per questo aggiornamento.
  • --file: percorsi del file o dei file di aggiornamento.

Per altre informazioni su questi parametri, vedere Importare informazioni su schema e API.

az iot du update init v5 \
    --update-provider <replace with your Provider> \
    --update-name <replace with your update Name> \
    --update-version <replace with your update Version> \
    --compat <replace with the property name>=<replace with the value your device will report> <replace with the property name>=<replace with the value your device will report> \
    --step handler=<replace with your chosen handler> properties=<replace with any handler properties (JSON-formatted)> \
    --file path=<replace with path(s) to your update file(s), including the full file name> 

Ad esempio:

az iot du update init v5 \
    --update-provider Microsoft \
    --update-name AptUpdate \
    --update-version 1.0.0 \
    --compat manufacturer=Contoso model=Vacuum \
    --step handler=microsoft/script:1 properties='{"installedCriteria": "1.0"}' \
    --file path=/my/apt/manifest/file

Per le proprietà del gestore, potrebbe essere necessario eseguire l'escape di determinati caratteri nel codice JSON. Ad esempio, usare per eseguire '\' l'escape tra virgolette doppie se si esegue l'interfaccia della riga di comando di Azure in PowerShell.

Il init comando supporta scenari avanzati, inclusa la funzionalità relativa ai file che consente di definire la relazione tra file di aggiornamento diversi. Per altri esempi e un elenco completo dei parametri facoltativi, vedere az iot du init v5.

Dopo aver creato il manifesto di importazione e salvato come file JSON, si è pronti per importare l'aggiornamento. Se si prevede di usare l'interfaccia utente di portale di Azure per l'importazione, assicurarsi di denominare il manifesto di importazione nel formato seguente: "<manifestname>.importmanifest.json".

Creare un manifesto di importazione avanzato di Aggiornamento dispositivi per un aggiornamento proxy

Se l'aggiornamento è più complesso, ad esempio un aggiornamento proxy, potrebbe essere necessario creare più manifesti di importazione. È possibile usare lo stesso approccio dell'interfaccia della riga di comando di Azure della sezione precedente per creare sia un manifesto di importazione padre che un certo numero di manifesti di importazione figlio per aggiornamenti complessi. Eseguire i comandi seguenti dell'interfaccia della riga di comando di Azure dopo aver sostituito i valori dei parametri di esempio con i propri. Per informazioni dettagliate sui valori che è possibile usare, vedere Importare schema e API. Nell'esempio seguente sono disponibili tre aggiornamenti da distribuire nel dispositivo: un aggiornamento padre e due aggiornamenti figlio:

az iot du update init v5 \
    --update-provider <replace with child_1 update Provider> \
    --update-name <replace with child_1 update Name> \
    --update-version <replace with child_1 update Version> \
    --compat manufacturer=<replace with the value your device will report> model=<replace with the value your device will report> \
    --step handler=<replace with your chosen handler> \
    --file path=<replace with path(s) to your update file(s), including the full file name> \
az iot du update init v5 \
    --update-provider <replace with child_2 update Provider> \
    --update-name <replace with child_2 update Name> \
    --update-version <replace with child_2 update Version> \
    --compat manufacturer=<replace with the value your device will report> model=<replace with the value your device will report> \
    --step handler=<replace with your chosen handler> \
    --file path=<replace with path(s) to your update file(s), including the full file name> \
az iot du update init v5 \
    --update-provider <replace with the parent update Provider> \
    --update-name <replace with the parent update Name> \
    --update-version <replace with the parent update Version> \
    --compat manufacturer=<replace with the value your device will report> model=<replace with the value your device will report> \
    --step handler=<replace with your chosen handler> properties=<replace with any desired handler properties (JSON-formatted)> \
    --file path=<replace with path(s) to your update file(s), including the full file name> \
    --step updateId.provider=<replace with child_1 update provider> updateId.name=<replace with child_1 update name> updateId.version=<replace with child_1 update version> \
    --step updateId.provider=<replace with child_2 update provider> updateId.name=<replace with child_2 update name> updateId.version=<replace with child_2 update version> \

Passaggi successivi