Informazioni sui moduli Azure IoT Edge

Si applica a:IoT Edge 1.4 checkmark IoT Edge 1.4

Importante

IoT Edge 1.4 è la versione supportata. Se si usa una versione precedente, vedere Aggiornare IoT Edge.

Azure IoT Edge consente di distribuire e gestire la logica di business sui dispositivi perimetrali sotto forma di moduli. I moduli di Azure IoT Edge sono l'unità di calcolo più piccola gestita da IoT Edge e possono contenere i servizi di Azure, ad esempio Analisi di flusso di Azure, o il codice specifico della soluzione. Per comprendere come vengono sviluppati, distribuiti e gestiti i moduli, considerare i quattro elementi concettuali di un modulo:

  • Un'immagine del modulo è un pacchetto che contiene il software che definisce il modulo.
  • Un'istanza del modulo è l'unità di calcolo specifica che esegue l'immagine del modulo in un dispositivo di IoT Edge. L'istanza del modulo viene avviata dal runtime di IoT Edge.
  • Un'identità del modulo è una parte di informazioni (incluse le credenziali di sicurezza) archiviate in hub IoT associate a ogni istanza del modulo.
  • Un modulo gemello è un documento JSON archiviato in hub IoT che contiene informazioni sullo stato per un'istanza del modulo, inclusi metadati, configurazioni e condizioni.

Istanze e immagini del moduli

Le immagini del modulo di IoT Edge contengono applicazioni che sfruttano i vantaggi delle funzionalità di gestione, sicurezza e comunicazione del runtime di IoT Edge. È possibile sviluppare le proprie immagini di modulo o esportarne una da un servizio di Azure supportato, ad esempio Analisi di flusso di Azure. Le immagini si trovano nel cloud e possono essere aggiornate, modificate e distribuite in diverse soluzioni. Ad esempio, un modulo che usa l'apprendimento automatico per stimare l'output della linea di produzione esiste come immagine separata di un modulo che usa la visione artificiale per controllare un drone.

Ogni volta che un'immagine del modulo viene distribuita in un dispositivo e avviata dal runtime di IoT Edge, viene creata una nuova istanza del modulo. Due dispositivi in diverse parti del mondo possono usare la stessa immagine del modulo. Tuttavia, ogni dispositivo avrebbe la propria istanza del modulo quando il modulo viene avviato sul dispositivo.

Diagram - Module images in cloud, module instances on devices

Nell'implementazione, le immagini dei moduli esistono come immagini del contenitore in un repository e le istanze del modulo sono contenitori nei dispositivi.

Identità del modulo

Quando una nuova istanza del modulo viene creata dal runtime di IoT Edge, ottiene un'identità del modulo corrispondente. L'identità del modulo viene archiviata in hub IoT e viene usata come ambito di indirizzamento e sicurezza per tutte le comunicazioni locali e cloud per tale istanza del modulo.

L'identità associata all'istanza del modulo dipende dall'identità del dispositivo su cui è in esecuzione l'istanza e dal nome specificato per il modulo nella soluzione. Ad esempio, un modulo che usa un Analisi di flusso di Azure se si chiama insight e lo si distribuisce in un dispositivo chiamato Hannover01, il runtime di IoT Edge crea un'identità del modulo corrispondente denominata /devices/Hannover01/modules/insight.

Chiaramente, negli scenari in cui è necessario distribuire un'immagine del modulo più volte sullo stesso dispositivo, è possibile distribuire la stessa immagine più volte con nomi diversi.

Diagram - Module identities are unique within devices and across devices

Moduli gemelli

Ogni istanza del modulo ha anche un modulo gemello corrispondente che è possibile usare per configurare l'istanza del modulo. L'istanza e il gemello sono associati tra loro tramite l'identità del modulo.

Un modulo gemello è un documento JSON che archivia le proprietà di configurazione e le informazioni del modulo. Questo concetto è parallelo a quello di dispositivo gemello dell'hub IoT. La struttura di un modulo gemello è esattamente la stessa di quella di un dispositivo gemello. Anche le API usate per interagire con entrambi i tipi di gemelli sono le stesse. L'unica differenza tra i due è l'identità usata per creare un'istanza dell'SDK client.

// Create a ModuleClient object. This ModuleClient will act on behalf of a
// module since it is created with a module’s connection string instead
// of a device connection string.
ModuleClient client = new ModuleClient.CreateFromEnvironmentAsync(settings);
await client.OpenAsync();

// Get the module twin
Twin twin = await client.GetTwinAsync();

Funzionalità offline

I moduli di Azure IoT Edge possono funzionare offline per un periodo illimitato dopo almeno una sincronizzazione con l'hub IoT. I dispositivi IoT Edge possono estendere questa funzionalità offline anche ad altri dispositivi IoT. Per altre informazioni, vedere Informazioni sulle funzionalità offline estese per dispositivi, moduli e dispositivi downstream IoT Edge.

Passaggi successivi