Informazioni sulle funzionalità per periodi offline prolungati per i dispositivi IoT Edge, i moduli e i dispositivi figlio

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.

Azure IoT Edge supporta operazioni offline estese nei dispositivi IoT Edge e abilita anche le operazioni offline nei dispositivi downstream. Finché un dispositivo IoT Edge ha avuto un'opportunità di connettersi a hub IoT, tale dispositivo e qualsiasi dispositivo downstream può continuare a funzionare con connessione Internet intermittente o senza connessione Internet.

Funzionamento

Quando un dispositivo IoT Edge passa alla modalità offline, l'hub di IoT Edge svolge tre ruoli. Prima di tutto, archivia i messaggi diretti upstream e li salva fino a quando il dispositivo si riconnette. In secondo luogo, agisce per conto di hub IoT per autenticare moduli e dispositivi downstream in modo che possano continuare a funzionare. In terzo luogo, consente la comunicazione tra dispositivi downstream che normalmente passano attraverso hub IoT.

L'esempio seguente mostra il funzionamento di uno scenario IoT Edge in modalità offline:

  1. Configurare i dispositivi

    Per i dispositivi IoT Edge le funzionalità offline vengono abilitate automaticamente. Per estendere tale funzionalità ad altri dispositivi, è necessario configurare i dispositivi downstream per considerare attendibile il dispositivo padre assegnato e instradare le comunicazioni da dispositivo a cloud tramite l'elemento padre come gateway.

  2. Eseguire la sincronizzazione con l'hub IoT

    Almeno una volta dopo l'installazione del runtime di IoT Edge, il dispositivo IoT Edge deve essere online per la sincronizzazione con l'hub IoT. In questa sincronizzazione, il dispositivo IoT Edge ottiene i dettagli su tutti i dispositivi downstream assegnati. Il dispositivo IoT Edge aggiorna inoltre in modo sicuro la cache locale per abilitare le operazioni offline e recupera le impostazioni per l'archiviazione locale dei messaggi di telemetria.

  3. Disconnettersi

    Durante la disconnessione da hub IoT, il dispositivo IoT Edge, i moduli distribuiti e tutti i dispositivi downstream possono funzionare a tempo indeterminato. I moduli e i dispositivi downstream possono essere avviati e riavviati eseguendo l'autenticazione con l'hub IoT Edge durante la modalità offline. I dati di telemetria previsti per l'invio upstream all'hub IoT vengono archiviati in locale. La comunicazione tra moduli o tra dispositivi downstream viene mantenuta tramite metodi o messaggi diretti.

  4. Ristabilire la connessione e ripetere la sincronizzazione con l'hub IoT

    Dopo il ripristino della connessione con l'hub IoT, il dispositivo IoT Edge viene sincronizzato di nuovo. I messaggi archiviati in locale vengono recapitati immediatamente all'hub IoT, ma dipendono dalla velocità della connessione, dalla latenza dell'hub IoT e da fattori correlati. Vengono recapitati nello stesso ordine in cui sono stati archiviati.

    Eventuali differenze tra le proprietà desiderate e quelle segnalate per i moduli e i dispositivi vengono riconciliate. Il dispositivo IoT Edge aggiorna le modifiche apportate al set di dispositivi downstream assegnati.

Restrizioni e limiti

Le funzionalità offline per periodi prolungati descritte in questo articolo sono disponibili in IoT Edge versione 1.0.7 o versioni successive. Nelle versioni precedenti è disponibile un subset di funzionalità offline. I dispositivi IoT Edge esistenti che non hanno le funzionalità offline per periodi prolungati non possono essere aggiornati modificando la versione del runtime, ma devono essere riconfigurati con una nuova identità del dispositivo IoT Edge per ottenere queste funzionalità.

Solo i dispositivi non IoT Edge possono essere aggiunti come dispositivi downstream.

I dispositivi IoT Edge e i dispositivi downstream assegnati possono funzionare offline per un periodo illimitato dopo la sincronizzazione iniziale una tantum. L'archiviazione dei messaggi dipende tuttavia dall'impostazione della durata (TTL) e dallo spazio disponibile su disco per archiviare i messaggi.

EdgeAgent di un dispositivo aggiorna le proprietà segnalate ogni volta che si verifica una modifica dello stato della distribuzione, ad esempio una distribuzione nuova o non riuscita. Quando un dispositivo è offline, EdgeAgent non può segnalare lo stato al portale di Azure. Pertanto, lo stato del dispositivo nella portale di Azure potrebbe rimanere 200 OK quando il dispositivo IoT Edge non ha connettività Internet.

Configurare i dispositivi padre e figlio

Per impostazione predefinita, un dispositivo padre può avere fino a 100 figli. È possibile modificare questo limite impostando la variabile di ambiente MaxConnectedClients nel modulo edgeHub. Un dispositivo figlio ha un solo elemento padre.

Nota

Un dispositivo downstream genera dati direttamente in Internet o nei dispositivi gateway, abilitati o meno per IoT Edge. Un dispositivo figlio può essere un dispositivo downstream o un dispositivo gateway in una topologia annidata.

I dispositivi downstream possono essere qualsiasi dispositivo non IoT Edge registrato nello stesso hub IoT.

Se non si ha familiarità con la creazione di una relazione padre-figlio tra un dispositivo IoT Edge e un dispositivo IoT, vedere Autenticare un dispositivo downstream per hub IoT di Azure. Le sezioni chiave simmetrica, X.509 autofirmato e X.509 con firma CA illustrano esempi di come usare le portale di Azure e l'interfaccia della riga di comando di Azure per definire le relazioni padre-figlio durante la creazione di dispositivi. Per i dispositivi esistenti, è possibile dichiarare la relazione dalla pagina dei dettagli del dispositivo del dispositivo padre o figlio.

Configurare il dispositivo padre come gateway

È possibile pensare a una relazione padre/figlio come a un gateway trasparente, in cui il dispositivo figlio ha una propria identità nell'hub IoT ma comunica attraverso il cloud tramite il relativo padre. Per garantire la sicurezza della comunicazione, il dispositivo figlio deve poter verificare che il dispositivo padre provenga da una fonte attendibile. In caso contrario, terze parti potrebbero configurare dispositivi dannosi per rappresentare i dispositivi padre e intercettare le comunicazioni.

Un modo per creare questa relazione di trust è descritto in dettaglio negli articoli seguenti:

Specificare i server DNS

Per migliorare l'affidabilità, è consigliabile specificare gli indirizzi dei server DNS usati nell'ambiente. Per impostare il server DNS per IoT Edge, vedere il modulo resolution for Edge Agent segnala "file di configurazione vuoto" e nessun modulo viene avviato nel dispositivo nell'articolo sulla risoluzione dei problemi.

Impostazioni facoltative per la modalità offline

Se i dispositivi passano offline, il dispositivo padre IoT Edge archivia tutti i messaggi da dispositivo a cloud fino a quando non viene ristabilita la connessione. Il modulo dell'hub di IoT Edge gestisce l'archiviazione e l'inoltro di messaggi offline. Per i dispositivi che possono passare offline per periodi di tempo prolungati, ottimizzare le prestazioni configurando due impostazioni dell'hub di IoT Edge.

In primo luogo, aumentare l'impostazione della durata (TTL), in modo che l'hub di IoT Edge mantenga i messaggi abbastanza a lungo per consentire la riconnessione del dispositivo. e quindi aggiungere altro spazio su disco per l'archiviazione dei messaggi.

Durata (TTL)

L'impostazione della durata (TTL) è la quantità di tempo (in secondi) di attesa per il recapito di un messaggio prima che scada. Il valore predefinito è 7200 secondi (due ore). Il valore massimo è limitato solo dal valore massimo di una variabile di tipo Integer, che è di circa 2 miliardi.

Questa impostazione è una proprietà desiderata dell'hub di IoT Edge, che viene archiviata nel modulo gemello. È possibile eseguire la configurazione nel portale di Azure o direttamente nel manifesto della distribuzione.

"$edgeHub": {
    "properties.desired": {
        "schemaVersion": "1.0",
        "routes": {},
        "storeAndForwardConfiguration": {
            "timeToLiveSecs": 7200
        }
    }
}

Archiviazione host per i moduli di sistema

Per impostazione predefinita, i messaggi e le informazioni sullo stato dei moduli vengono archiviati nel file system del contenitore locale dell'hub di IoT Edge. Per una maggiore affidabilità, soprattutto quando si opera offline, è anche possibile dedicare spazio di archiviazione nel dispositivo IoT Edge host. Per altre informazioni, vedere Consentire ai moduli di accedere all'archiviazione locale di un dispositivo

Passaggi successivi

Vedere altre informazioni su come configurare un gateway trasparente per le connessioni dei dispositivi padre/figlio: