Esercitazione: Distribuire Analisi di flusso di Azure come modulo IoT Edge
Si applica a: IoT Edge 1.5 IoT Edge 1.4
Importante
IoT Edge 1.5 LTS e IoT Edge 1.4 LTS sono versioni supportate. IoT Edge 1.4 LTS raggiungerà il fine vita il 12 novembre 2024. Se si usa una versione precedente, vedere Aggiornare IoT Edge.
In questa esercitazione si creerà un processo di Analisi di flusso di Azure nel portale di Azure e quindi lo si distribuirà come modulo IoT Edge senza bisogno di codice aggiuntivo.
Scopri come:
- Creare un processo di Analisi di flusso di Azure per elaborare i dati al limite.
- Connettere il nuovo processo di Analisi di flusso di Azure con altri moduli IoT Edge.
- Distribuire il processo di Analisi di flusso di Azure in un dispositivo IoT Edge dal portale di Azure.
Il modulo di Analisi di flusso in questa esercitazione calcola la temperatura media in una finestra mobile di 30 secondi. Quando tale media è pari a 70, il modulo invia al dispositivo un avviso con una richiesta di intervento. In questo caso, tale azione consiste nel reimpostare il sensore temperatura simulato. In un ambiente di produzione, questa funzionalità potrebbe essere usata per spegnere un computer o intraprendere misure preventive quando la temperatura raggiunge livelli pericolosi.
Perché usare Analisi di flusso di Azure in IoT Edge?
Molte soluzioni IoT usano servizi di analisi per ottenere informazioni sui dati quando arrivano nel cloud dai dispositivi IoT. Con Azure IoT Edge, è possibile spostare direttamente nel dispositivo la logica di Analisi di flusso di Azure. Elaborando i flussi di telemetria sul perimetro, è possibile ridurre la quantità di dati caricati e ridurre il tempo necessario per reagire a informazioni dettagliate di utilità pratica. Azure IoT Edge e Analisi di flusso di Azure sono servizi integrati per semplificare lo sviluppo di carichi di lavoro.
Analisi di flusso di Azure offre una sintassi di query particolarmente strutturata per l'analisi dei dati sia nel cloud che nei dispositivi IoT Edge. Per altre informazioni, vedere Documentazione di Analisi di flusso di Azure.
Prerequisiti
Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
Un dispositivo Azure IoT Edge.
è possibile usare una macchina virtuale di Azure come dispositivo IoT Edge seguendo la procedura illustrata nell'argomento di avvio rapido per dispositivi Linux o Windows.
Un hub IoT di livello Gratuito o Standard in Azure.
Creare un processo di Analisi di flusso di Azure
In questa sezione si creerà un processo di Analisi di flusso di Azure che esegue i passaggi seguenti:
- Ricevere i dati dal dispositivo IoT Edge.
- Eseguire query sui dati di telemetria per i valori non compresi in un intervallo impostato.
- Eseguire un'azione sul dispositivo IoT Edge in base ai risultati della query.
Creare un account di archiviazione
Quando si crea un processo di Analisi di flusso di Azure da eseguire in un dispositivo IoT Edge, è necessario archiviarlo in modo che possa essere chiamato dal dispositivo. È possibile usare un account di archiviazione di Azure esistente o crearne uno nuovo ora.
Nel portale di Azure fare clic su Crea una risorsa>Archiviazione>Account di archiviazione.
Specificare i valori seguenti per creare l'account di archiviazione:
Campo Valore Subscription Scegliere la stessa sottoscrizione dell'hub IoT. Gruppo di risorse È consigliabile usare lo stesso gruppo di risorse per tutte le risorse di test create per le esercitazioni e gli argomenti di avvio rapido su IoT Edge. Ad esempio, IoTEdgeResources. Nome Immettere un nome univoco per l'account di archiviazione. Ufficio Scegliere una località vicina. Mantenere i valori predefiniti per gli altri campi e selezionare Rivedi e crea.
Rivedere le impostazioni, quindi selezionare Crea.
Creazione di una nuova commessa
Nel portale di Azure, selezionare:
- Crea una risorsa
- Internet delle cose dal menu a sinistra
- Digitare Analisi di flusso nella barra di ricerca per trovarla nel Marketplace
- Selezionare Crea, quindi Processo di Analisi di flusso dal menu a discesa
Specificare i valori seguenti per creare il nuovo processo di Analisi di flusso:
Campo Valore Nome Dare un nome al processo. Ad esempio, IoTEdgeJob Subscription Scegliere la stessa sottoscrizione dell'hub IoT. Gruppo di risorse È consigliabile usare lo stesso gruppo di risorse per tutte le risorse di test create durante le guide introduttive e le esercitazioni di IoT Edge. Ad esempio, una risorsa denominata IoTEdgeResources. Area Scegliere una località vicina. Ambiente di hosting Selezionare Edge. Questa opzione significa che la distribuzione passa a un dispositivo IoT Edge anziché essere ospitata nel cloud. Selezionare Rivedi e crea.
Confermare le opzioni e quindi selezionare Crea.
Configurare il processo
Dopo avere creato il processo di Analisi di flusso nel portale di Azure, è possibile configurarlo con un input, un output e una query da eseguire sui dati in transito.
Questa sezione crea un processo che riceve i dati sulla temperatura da un dispositivo IoT Edge. Analizza tali dati in una finestra mobile di 30 secondi. Se la temperatura media in tale finestra supera i 70 gradi, viene inviato un avviso al dispositivo IoT Edge.
Nota
Si specificheranno l’esatta provenienza e destinazione dei dati nella sezione successiva, Configurare le impostazioni di IoT Edge, durante la distribuzione del processo.
Impostare l'input e l'output
Passare al processo di Analisi di flusso nel portale di Azure.
In Topologia processo, selezionare Input, quindi Aggiungi input.
Scegliere Hub Edge dall'elenco a discesa.
Se l'opzione Hub Edge non appare nell'elenco, è possibile che il processo di Analisi di flusso sia stato creato come processo ospitato nel cloud. Provare a creare un nuovo processo e assicurarsi di selezionare Edge come ambiente di hosting.
Nel riquadro Nuovo input, inserire la temperatura come Alias di input.
Mantenere i valori predefiniti per gli altri campi e selezionare Salva.
In Topologia processo aprire Output, quindi selezionare Aggiungi.
Scegliere Hub Edge dall'elenco a discesa.
Nel riquadro Nuovo output inserire avviso come alias di output.
Mantenere i valori predefiniti per gli altri campi e selezionare Salva.
Creare una query
In Topologia processo selezionare Query.
Sostituire il testo predefinito con la query seguente.
SELECT 'reset' AS command INTO alert FROM temperature TIMESTAMP BY timeCreated GROUP BY TumblingWindow(second,30) HAVING Avg(machine.temperature) > 70
In questa query, il codice SQL invia un comando reset all'output dell'avviso se la temperatura media della macchina in una finestra di 30 secondi raggiunge i 70 gradi. Il comando reset è stato pre-programmato nel sensore come azione che può essere eseguita.
Selezionare Salva query.
Configurare le impostazioni di IoT Edge
Per preparare il processo di Analisi di flusso da distribuire in un dispositivo IoT Edge, è necessario associare il processo di Analisi di flusso di Azure a un account di archiviazione. Quando si distribuisce il processo, la definizione del processo viene esportata nell'account di archiviazione sotto forma di contenitore.
Nel servizio Analisi di flusso nel menu Impostazioni, selezionare Impostazioni dell'account di archiviazione.
Scegliere l'opzione Seleziona archiviazione BLOB/ADLS Gen 2 dalle sottoscrizioni.
L'account di archiviazione di Azure viene visualizzato automaticamente nella pagina. Se non viene mostrato alcun account, assicurarsi di creare una risorsa di archiviazione. O se si necessita di scegliere una risorsa di archiviazione diversa da quella elencata nel campo Account di archiviazione, selezionarla dal menu a discesa.
Se sono state apportate modifiche, selezionare Salva.
Distribuire il processo
È ora possibile iniziare la distribuzione del processo di Analisi di flusso di Azure nel dispositivo IoT Edge.
In questa sezione si usa la procedura guidata Imposta moduli nel portale di Azure per creare un manifesto della distribuzione. Un manifesto della distribuzione è un file JSON che descrive tutti i moduli distribuiti in un dispositivo. Il manifesto mostra anche i registri contenitori che archiviano le immagini del modulo, le modalità di gestione dei moduli le modalità di comunicazione tra moduli. Il dispositivo IoT Edge recupera il manifesto della distribuzione dall'hub IoT, quindi usa le informazioni contenute per distribuire e configurare tutti i moduli assegnati.
Per questa esercitazione, si distribuiscono due moduli. Il primo è SimulatedTemperatureSensor, un modulo che simula un sensore di temperatura e umidità. Il secondo è il processo di Analisi di flusso. Il modulo del sensore fornisce il flusso di dati analizzati dalla query del processo.
Nel portale di Azure passare all'hub IoT.
Selezionare Dispositivi nel menu Gestione dei dispositivi, quindi selezionare il dispositivo IoT Edge per aprirlo.
Selezionare Imposta moduli.
Se il modulo SimulatedTemperatureSensor è stato distribuito in precedenza in questo dispositivo, la compilazione dei campi potrebbe essere automatica. Se non dovesse aprirsi, aggiungere il modulo con questa procedura:
- Selezionare + Aggiungi e scegliere modulo IoT Edge.
- Per il nome digitare SimulatedTemperatureSensor.
- Per l'URI dell'immagine, immettere mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.5.
- Lasciare le altre impostazioni come predefinite e quindi selezionare Aggiungi.
Aggiungere il processo Edge di Analisi di flusso di Azure seguendo questa procedura:
- Selezionare + Aggiungi e scegliere Modulo analisi di flusso di Azure.
- Selezionare la sottoscrizione e il processo Edge di Analisi di flusso di Azure creato.
- Seleziona Salva.
Dopo aver salvato le modifiche, i dettagli del processo di analisi di flusso vengono pubblicati nel contenitore di archiviazione creato.
Al termine della distribuzione dell’elemento aggiuntivo Analisi di flusso, verificare che nella pagina Imposta moduli appaiano due nuovi moduli.
Selezionare Rivedi e crea. Viene mostrato il manifesto della distribuzione.
Seleziona Crea.
Nella pagina Imposta moduli del dispositivo, compariranno dopo alcuni minuti i moduli elencati e in esecuzione. Se i moduli non compaiono, aggiornare la pagina o attendere alcuni minuti e quindi aggiornarla di nuovo.
Familiarizzarsi con i due nuovi moduli
Nella scheda Imposta moduli del dispositivo, selezionare il nome del modulo di Analisi di flusso per passare alla pagina Aggiorna modulo IoT Edge. Qui è possibile aggiornare le impostazioni.
La scheda Impostazioni contiene l'URI dell'immagine che punta a un'immagine standard di Analisi di flusso di Azure. Questa singola immagine viene usata per ogni modulo di analisi di flusso che viene distribuito in un dispositivo IoT Edge.
La scheda Impostazioni modulo gemello mostra il codice JSON che definisce la proprietà di Analisi di flusso di Azure denominata ASAJobInfo. Il valore di tale proprietà punta alla definizione del processo nel contenitore di archiviazione. Questa proprietà determina come l'immagine di Analisi di flusso viene configurata con i dettagli specifici del processo.
Per impostazione predefinita, il modulo di analisi di flusso prende lo stesso nome del processo su cui si basa. Se lo si desidera, è possibile modificare il nome del modulo in questa pagina, ma non è necessario.
Selezionare Applica se sono state apportate modifiche o Annulla se non sono state apportate modifiche.
Assegnare route ai moduli
Nella pagina Imposta moduli nel dispositivo:<your-device-name>, selezionare Avanti: Route.
Nella scheda Route è possibile definire come vengono passati i messaggi tra i moduli e l'hub IoT. I messaggi vengono costruiti mediante coppie nome e valore.
Aggiungere i nomi e i valori della route con le coppie mostrate nella tabella seguente. Sostituire le istanze di
{moduleName}
con il nome del modulo di Analisi di flusso di Azure. Questo modulo deve avere lo stesso nome mostrato nell'elenco dei moduli del dispositivo nella pagina Imposta moduli, come illustrato nel portale di Azure.Nome Valore telemetryToCloud FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
alertsToCloud FROM /messages/modules/{moduleName}/* INTO $upstream
alertsToReset FROM /messages/modules/{moduleName}/* INTO BrokeredEndpoint("/modules/SimulatedTemperatureSensor/inputs/control")
telemetryToAsa FROM /messages/modules/SimulatedTemperatureSensor/* INTO BrokeredEndpoint("/modules/{moduleName}/inputs/temperature")
Le route dichiarate qui definiscono il flusso di dati attraverso il dispositivo IoT Edge. I dati di telemetria vengono inviati dal modulo SimulatedTemperatureSensor all'hub IoT e all'input temperature configurato nel processo di Analisi di flusso. I messaggi di output alert vengono inviati all'hub IoT e al modulo SimulatedTemperatureSensor per attivare il comando reset.
Selezionare Avanti: Rivedi e crea.
Nella scheda Rivedi e crea è possibile osservare come le informazioni fornite nella procedura guidata vengono convertite in un manifesto della distribuzione JSON.
Una volta revisionato il manifesto, selezionare Crea per completare l'impostazione del modulo.
Visualizzare i dati
A questo punto, è possibile passare al dispositivo IoT Edge per visualizzare l'interazione tra il modulo di Analisi di flusso di Azure e il modulo SimulatedTemperatureSensor.
Nota
Se si usa una macchina virtuale come dispositivo, è possibile usare Azure Cloud Shell per accedere direttamente a tutti i servizi autenticati di Azure.
Verificare che tutti i moduli siano in esecuzione in Docker:
iotedge list
Visualizzare tutti i log di sistema e i dati di metrica. Sostituire {moduleName} con il nome del modulo di Analisi di flusso di Azure:
iotedge logs -f {moduleName}
Osservare l'effetto del comando reset sul modulo SimulatedTemperatureSensor visualizzando i log del sensore:
iotedge logs SimulatedTemperatureSensor
È possibile osservare un progressivo aumento della temperatura del computer fino a raggiungere i 70 gradi per 30 secondi. Il modulo di Analisi di flusso attiva quindi la reimpostazione e la temperatura del computer ritorna a 21.
Pulire le risorse
Se si intende continuare con il prossimo articolo consigliato, è possibile conservare le risorse e le configurazioni create e riutilizzarle. È anche possibile continuare a usare lo stesso dispositivo IoT Edge come dispositivo di test.
In caso contrario, è possibile eliminare le configurazioni locali e le risorse di Azure usate in questo articolo per evitare addebiti.
Eliminare le risorse di Azure
L'eliminazione delle risorse e dei gruppi di risorse di Azure è irreversibile. Assicurarsi di non eliminare accidentalmente il gruppo di risorse sbagliato o le risorse errate. Se l'hub IoT è stato creato all'interno di un gruppo di risorse esistente che contiene risorse che si vogliono conservare, eliminare solo la risorsa hub IoT stessa, invece dell'intero gruppo.
Per eliminare le risorse:
Accedere al portale di Azure e selezionare Gruppi di risorse.
Selezionare il nome del gruppo di risorse contenente le risorse di test di IoT Edge.
Esaminare l'elenco delle risorse contenute nel gruppo di risorse. Per eliminarle tutte, è possibile selezionare Elimina gruppo di risorse. Se se ne vogliono eliminare solo alcune, è possibile selezionare ogni risorsa per eliminarle singolarmente.
Passaggi successivi
In questa esercitazione è stato configurato un processo Analisi di flusso di Azure per analizzare i dati del dispositivo IoT Edge. Questo modulo di Analisi di flusso di Azure è stato quindi caricato nel dispositivo IoT Edge per elaborare e reagire all'aumento di temperatura in locale, nonché per inviare il flusso dei dati aggregati al cloud. È possibile continuare con le altre esercitazioni per scoprire in che modo Azure IoT Edge può creare altre soluzioni per il business.