Condividi tramite


Aggiornare IoT Edge

Si applica a: Icona Sì IoT Edge 1.1

Importante

La data di fine del supporto di IoT Edge 1.1 è stata il 13 dicembre 2022. Controlla il ciclo di vita dei prodotti Microsoft per ottenere informazioni sul modo in cui viene supportato questo prodotto, servizio, tecnologia o API. Per altre informazioni sull'aggiornamento alla versione più recente di IoT Edge, vedere Aggiornare IoT Edge.

Man mano che il servizio IoT Edge rilascia nuove versioni, è necessario aggiornare i dispositivi IoT Edge per le funzionalità e i miglioramenti della sicurezza più recenti. Questo articolo fornisce informazioni su come aggiornare i dispositivi IoT Edge quando è disponibile una nuova versione.

Se si vuole passare a una versione più recente, è necessario aggiornare due componenti logici di un dispositivo IoT Edge. Il primo è il sottosistema di sicurezza. Anche se l'architettura del sottosistema di sicurezza è cambiata tra la versione 1.1 e la 1.2, le responsabilità complessive rimangono invariate. Viene eseguito nel dispositivo, gestisce le attività basate sulla sicurezza e avvia i moduli all'avvio del dispositivo. Attualmente, il sottosistema di sicurezza può essere aggiornato solo dal dispositivo stesso. Il secondo componente è il runtime, costituito dai moduli dell'agente IoT Edge e dell'hub di IoT Edge. A seconda del modo in cui si struttura la distribuzione, il runtime può essere aggiornato dal dispositivo o in modalità remota.

È consigliabile aggiornare il runtime di IoT Edge e i livelli dell'applicazione usano la stessa versione di rilascio. Anche se le versioni non corrispondenti sono supportate, non vengono testate insieme. Usare le sezioni seguenti in questo articolo per aggiornare sia il runtime che i livelli dell'applicazione in un dispositivo:

  1. Aggiornare il sottosistema di sicurezza
  2. Aggiornare i contenitori di runtime
  3. Verificare la corrispondenza delle versioni
    • Nel dispositivo usare iotedge version per controllare la versione del sottosistema di sicurezza. L'output include i numeri di versione principale, secondaria e di revisione. Ad esempio, iotedge 1.4.2.
    • Nelle impostazioni del runtime di distribuzione del dispositivo verificare che le versioni dell'URI dell'immagine edgehub e edgeagent corrispondano alla versione principale e secondaria del sottosistema di sicurezza. Se la versione del sottosistema di sicurezza è 1.4.2, le versioni dell'immagine saranno 1.4. Ad esempio, mcr.microsoft.com/azureiotedge-hub:1.4 e mcr.microsoft.com/azureiotedge-agent:1.4.

Per trovare la versione più recente di Azure IoT Edge, fare riferimento alle versioni di Azure IoT Edge.

Aggiornare il sottosistema di sicurezza

Il sottosistema di sicurezza IoT Edge include un set di componenti nativi che devono essere aggiornati usando la gestione pacchetti nel dispositivo IoT Edge.

Controllare la versione del sottosistema di sicurezza in esecuzione nel dispositivo usando il comando iotedge version. Se si usa IoT Edge per Linux in Windows, è necessario eseguire SSH nella macchina virtuale Linux per verificare la versione.

Importante

Se si aggiorna un dispositivo dalla versione 1.0 o 1.1 alla versione più recente, esistono differenze nei processi di installazione e configurazione che richiedono passaggi aggiuntivi. Per altre informazioni, vedere i passaggi descritti più avanti in questo articolo: Caso speciale: Aggiornamento dalla versione 1.0 o 1.1 alla versione più recente.

Nei dispositivi Linux x64 usare apt-get o la gestione pacchetti appropriata per aggiornare il modulo di runtime alla versione più recente.

Aggiornare apt.

sudo apt-get update

Nota

Per istruzioni su come ottenere la configurazione più recente del repository da Microsoft, vedere i passaggi preliminari per installare IoT Edge.

Verificare le versioni di IoT Edge disponibili.

apt list -a iotedge

Se si vuole eseguire l'aggiornamento alla versione più recente del modulo di runtime, usare il comando seguente, che aggiorna anche libiothsm-std alla versione più recente:

sudo apt-get install iotedge

Se si vuole eseguire l'aggiornamento a una versione specifica del modulo di runtime, specificare la versione dall'output dell'elenco apt. Ogni volta che iotedge viene aggiornato, tenta automaticamente di aggiornare il pacchetto libiothsm-std alla versione più recente, che può causare un conflitto di dipendenza. Se non si intende usare la versione più recente, assicurarsi di specificare come destinazione entrambi i pacchetti per la stessa versione. Ad esempio, il comando seguente installa una versione specifica della versione 1.1:

sudo apt-get install iotedge=1.1.1 libiothsm-std=1.1.1

Se la versione che si vuole installare non è disponibile tramite apt-get, è possibile usare curl per specificare come destinazione qualsiasi versione dal repository delle versioni di IoT Edge. Per qualsiasi versione da installare, individuare i file libiothsm-std e iotedge appropriati per il dispositivo. Per ogni file, fare clic con il pulsante destro del mouse sul collegamento al file e copiare l'indirizzo del collegamento. Usare l'indirizzo di collegamento per installare le versioni specifiche di tali componenti:

curl -L <libiothsm-std link> -o libiothsm-std.deb && sudo apt-get install ./libiothsm-std.deb
curl -L <iotedge link> -o iotedge.deb && sudo apt-get install ./iotedge.deb

Quindi, riapplicare la configurazione per assicurarsi che il sistema sia completamente aggiornato.

sudo iotedge config apply

Aggiornare i contenitori del runtime

Il modo in cui si aggiorna l'agente IoT Edge e i contenitori dell'hub IoT Edge dipende dal fatto che si usino tag in sequenza (ad esempio 1.1) o tag specifici (ad esempio 1.1.1) nella distribuzione.

Controllare la versione dei moduli dell'agente IoT Edge e dell'hub di IoT Edge attualmente presenti nel dispositivo usando i comandi iotedge logs edgeAgent o iotedge logs edgeHub. Se si usa IoT Edge per Linux in Windows, è necessario eseguire SSH nella macchina virtuale Linux per controllare le versioni del modulo di runtime.

Trovare la versione contenitore nei log

Informazioni sui tag di IoT Edge

Le immagini dell'agente IoT Edge e dell'hub IoT Edge sono contrassegnate con la versione di IoT Edge a cui sono associati. Esistono due diversi modi per usare i tag con le immagini di runtime:

  • Tag di versioni. Vengono usati solo i primi due valori del numero di versione per ottenere l'immagine più recente corrispondente a tali cifre. Ad esempio, il tag 1.1 viene aggiornato ogni volta che è disponibile una nuova versione in modo da puntare alla versione 1.1.x più recente. Se il runtime del contenitore nel dispositivo IoT Edge esegue nuovamente il pull dell'immagine, i moduli del runtime vengono aggiornati alla versione più recente. Nelle distribuzioni dal portale di Azure vengono usati i tag di versioni per impostazione predefinita. Questo approccio è consigliato a scopo di sviluppo.

  • Tag specifici. Vengono usati tutti e tre i valori del numero di versione per impostare in modo esplicito la versione dell'immagine. Ad esempio, il tag 1.1.0 non verrà modificato dopo il rilascio iniziale. Quando si è pronti per l'aggiornamento, è possibile dichiarare un nuovo numero di versione nel manifesto della distribuzione. Questo approccio è consigliato a scopo di produzione.

Aggiornare un'immagine con tag di versioni

Se si usano tag in sequenza nella distribuzione (ad esempio, mcr.microsoft.com/azureiotedge-hub:1.1), è necessario forzare il runtime del contenitore nel dispositivo per eseguire il pull della versione più recente dell'immagine.

Eliminare la versione locale dell'immagine dal dispositivo IoT Edge. Nei computer Windows, la disinstallazione del sottosistema di sicurezza rimuove anche le immagini di runtime, quindi non è necessario eseguire di nuovo questo passaggio.

docker rmi mcr.microsoft.com/azureiotedge-hub:1.1
docker rmi mcr.microsoft.com/azureiotedge-agent:1.1

Potrebbe essere necessario usare il flag force -f per rimuovere le immagini.

Il servizio IoT Edge eseguirà il pull delle versioni più recenti delle immagini di runtime e le riavvierà automaticamente nel dispositivo.

Aggiornare un'immagine con tag specifici

Se si usano tag specifici nella distribuzione (ad esempio, mcr.microsoft.com/azureiotedge-hub:1.1.1), è sufficiente aggiornare il tag nel manifesto della distribuzione e applicare le modifiche al dispositivo.

  1. Nella hub IoT nel portale di Azure selezionare il dispositivo IoT Edge e selezionare Imposta moduli.

  2. Nella sezione Moduli IoT Edge selezionare Impostazioni di runtime.

    Configurare le impostazioni di runtime

  3. In Impostazioni di runtime aggiornare il valore Image per Edge Hub con la versione desiderata. Non selezionare ancora Salva .

    Aggiornare la versione dell'immagine dell'hub edge

  4. Comprimere le impostazioni dell'hub Edge o scorrere verso il basso e aggiornare il valore Immagine per Edge Agent con la stessa versione desiderata.

    Aggiornare la versione dell'agente hub Edge

  5. Seleziona Salva.

  6. Selezionare Rivedi e crea, esaminare la distribuzione e selezionare Crea.

Caso speciale: aggiornamento dalla versione 1.0 o 1.1 alla versione più recente

A partire dalla versione 1.2, il servizio IoT Edge usa un nuovo nome del pacchetto e presenta alcune differenze nei processi di installazione e configurazione. Se si dispone di un dispositivo IoT Edge che esegue la versione 1.0 o 1.1, usare queste istruzioni per informazioni su come eseguire l'aggiornamento alla versione più recente.

Alcune delle differenze principali tra la versione più recente e la versione 1.1 e precedenti includono:

  • Il nome del pacchetto è cambiato da iotedge a aziot-edge.
  • Il pacchetto libiothsm-std non viene più usato. Se è stato usato il pacchetto standard fornito come parte della versione di IoT Edge, le configurazioni possono essere trasferite alla nuova versione. Se è stata usata un'implementazione diversa di libiothsm-std, sarà necessario riconfigurare tutti i certificati forniti dall'utente, ad esempio il certificato di identità del dispositivo, la CA del dispositivo e il bundle di attendibilità.
  • È stato introdotto un nuovo servizio di gestione delle identità, aziot-identity-service nell'ambito della versione 1.2. Questo servizio gestisce il provisioning e la gestione delle identità per IoT Edge e per altri componenti del dispositivo che devono comunicare con hub IoT, ad esempio Aggiornamento dispositivi per hub IoT.
  • Il file di configurazione predefinito ha un nuovo nome e un nuovo percorso. In precedenza /etc/iotedge/config.yaml, le informazioni di configurazione del dispositivo saranno ora incluse per /etc/aziot/config.toml impostazione predefinita. Il comando iotedge config import può essere usato per eseguire la migrazione delle informazioni di configurazione dalla posizione e sintassi precedenti a quelle nuove.
    • Il comando di importazione non è in grado di rilevare o modificare le regole di accesso al modulo TPM (Trusted Platform Module) di un dispositivo. Se il dispositivo usa l'attestazione TPM, è necessario aggiornare manualmente il file /etc/udev/rules.d/tpmaccess.rules per concedere l'accesso al servizio aziottpm. Per altre informazioni, vedere Concedere a IoT Edge l'accesso al TPM.
  • L'API del carico di lavoro nella versione più recente salva i segreti crittografati in un nuovo formato. Se si esegue l'aggiornamento da una versione precedente alla versione più recente, viene importata la chiave di crittografia master esistente. L'API del carico di lavoro può leggere i segreti salvati nel formato precedente usando la chiave di crittografia importata. Tuttavia, l'API del carico di lavoro non può scrivere segreti crittografati nel formato precedente. Una volta che un segreto viene ricrittografato da un modulo, viene salvato nel nuovo formato. I segreti crittografati nella versione più recente sono illeggibili dallo stesso modulo nella versione 1.1. Se si salvano in modo permanente i dati crittografati in una cartella o in un volume montato su host, creare sempre una copia di backup dei dati prima dell'aggiornamento per mantenere la possibilità di effettuare il downgrade, se necessario.
  • Per garantire la compatibilità con le versioni precedenti quando si connettono dispositivi che non supportano TLS 1.2, è possibile configurare l'hub Edge per accettare ancora TLS 1.0 o 1.1 tramite la variabile di ambiente SslProtocols. Si noti che il supporto per TLS 1.0 e 1.1 in hub IoT è considerato legacy e può anche essere rimosso dall'hub Edge nelle versioni future. Per evitare problemi futuri, usare TLS 1.2 come unica versione TLS durante la connessione all'hub Edge o hub IoT.
  • L'anteprima per il broker MQTT sperimentale nell'hub Edge 1.2 è terminata e non è inclusa nell'hub Edge 1.3 o versione successiva. Stiamo continuando a perfezionare i nostri piani per un broker MQTT in base al feedback ricevuto. Nel frattempo, se è necessario un broker MQTT conforme agli standard in IoT Edge, valutare la possibilità di distribuire un broker open source come Mosquitto come modulo IoT Edge.
  • A partire dalla versione 1.2, quando un'immagine di backup viene rimossa da un contenitore, il contenitore continua a essere in esecuzione e viene mantenuto tra i riavvii. Nella versione 1.1, quando viene rimossa un'immagine di supporto, il contenitore viene ricreato immediatamente e l'immagine di supporto viene aggiornata.

Prima di automatizzare i processi di aggiornamento, verificare che funzioni nei computer di test.

Quando si è pronti, seguire questa procedura per aggiornare IoT Edge nei dispositivi:

  1. Aggiornare apt.

    sudo apt-get update
    
  2. Disinstallare la versione precedente di IoT Edge, lasciando i file di configurazione sul posto.

    sudo apt-get remove iotedge
    
  3. Installare la versione più recente di IoT Edge, insieme al servizio di gestione delle identità IoT e all'agente micro di Microsoft Defender per IoT per Edge.

    sudo apt-get install aziot-edge defender-iot-micro-agent-edge
    

È consigliabile installare il micro agente con l'agente Edge per abilitare il monitoraggio della sicurezza e la protezione avanzata dei dispositivi Edge. Per altre informazioni su Microsoft Defender per IoT, vedere Che cos'è Microsoft Defender per IoT per i generatori di dispositivi.

  1. Importare il file config.yaml precedente nel nuovo formato e applicare le informazioni di configurazione.

    sudo iotedge config import
    

Ora che il servizio IoT Edge in esecuzione nei dispositivi è stato aggiornato, seguire la procedura descritta in questo articolo per aggiornare anche i contenitori di runtime.

Passaggi successivi

Visualizzare le versioni di Azure IoT Edge più recenti.

Rimanere aggiornati con gli aggiornamenti e gli annunci recenti nel blog internet delle cose