Esercitazione: Distribuire Analisi di flusso di Azure come modulo IoT Edge

Si applica a:Segno di spunta IoT Edge 1.4 IoT Edge 1.4

Importante

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

In questa esercitazione viene creato un processo di Analisi di flusso di Azure nel portale di Azure e quindi distribuito come modulo IoT Edge senza 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.

Diagramma dell'architettura di flusso, che mostra la gestione temporanea e la distribuzione di un processo di Analisi di flusso 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 viene creato 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.

  1. Nel portale di Azure fare clic su Crea una risorsa>Archiviazione>Account di archiviazione.

  2. 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.
  3. Mantenere i valori predefiniti per gli altri campi e selezionare Rivedi e crea.

  4. Rivedere le impostazioni, quindi selezionare Crea.

Creazione di una nuova commessa

  1. Nella portale di Azure selezionare:

    1. Crea una risorsa
    2. Internet delle cose dal menu a sinistra
    3. Digitare Analisi di flusso nella barra di ricerca per trovarla nel Marketplace
    4. Selezionare Crea, quindi processo di Analisi di flusso dal menu a discesa

    Screenshot che mostra dove trovare il servizio processi di Analisi di flusso nel Marketplace e dove creare un nuovo processo.

  2. Specificare i valori seguenti per creare il nuovo processo di Analisi di flusso:

    Campo Valore
    Nome Dare un nome al processo. Ad esempio, IoTEdgeJob
    Abbonamento 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.
  3. Selezionare Rivedi e crea.

  4. Confermare le opzioni e quindi selezionare Crea.

Configurare il processo

Dopo aver creato il processo di Analisi di flusso nella portale di Azure, è possibile configurarlo con un input, un output e una query da eseguire sui dati che passano.

Questa sezione crea un processo che riceve i dati sulla temperatura da un dispositivo IoT Edge. Analizza i 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

Specificare esattamente da dove provengono i dati e passare alla sezione successiva Configurare le impostazioni di IoT Edge quando si distribuisce il processo.

Impostare l'input e l'output

  1. Passare al processo di Analisi di flusso nel portale di Azure.

  2. In Topologia processo selezionare Input e quindi Aggiungi input.

    Screenshot che mostra dove aggiungere l'input del flusso nella portale di Azure.

  3. Scegliere Hub Edge dall'elenco a discesa.

    Se l'opzione Hub Edge non è visualizzata nell'elenco, è possibile che sia stato creato il processo di Analisi di flusso come processo ospitato nel cloud. Provare a creare un nuovo processo e assicurarsi di selezionare Edge come ambiente di hosting.

  4. Nel riquadro Nuovo input immettere temperature come alias di input.

  5. Mantenere i valori predefiniti per gli altri campi e selezionare Salva.

  6. In Topologia processo aprire Output, quindi selezionare Aggiungi.

    Screenshot che mostra dove aggiungere l'output del flusso nella portale di Azure.

  7. Scegliere Hub Edge dall'elenco a discesa.

  8. Nel riquadro Nuovo output inserire avviso come alias di output.

  9. Mantenere i valori predefiniti per gli altri campi e selezionare Salva.

Creare una query

  1. In Topologia processo selezionare Query.

  2. 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 di reimpostazione all'output dell'avviso se la temperatura media del computer in una finestra di 30 secondi raggiunge i 70 gradi. Il comando reset è stato preprogrammato nel sensore come azione che può essere eseguita.

  3. 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.

  1. Nel servizio Analisi di flusso nel menu Impostazioni selezionare Archiviazione impostazioni dell'account.

  2. Scegliere l'opzione Seleziona archiviazione BLOB/ADLS Gen 2 dalle sottoscrizioni .

  3. L'account di archiviazione di Azure viene visualizzato automaticamente nella pagina. Se non ne viene visualizzato uno, assicurarsi di creare una risorsa di archiviazione. In alternativa, se è necessario scegliere uno spazio di archiviazione diverso da quello elencato nel campo Archiviazione account, selezionarlo dal menu a discesa.

  4. Selezionare Salva, se è necessario apportare modifiche.

    Screenshot della posizione in cui aggiungere un account di archiviazione nel processo di Analisi di flusso nel portale di Azure.

Distribuire il processo

È ora possibile distribuire il 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 di 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, il modo in cui i moduli devono essere gestiti e il modo in cui i moduli possono comunicare tra loro. 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.

  1. Nel portale di Azure passare all'hub IoT.

  2. Selezionare Dispositivi nel menu Gestione dispositivi e quindi selezionare il dispositivo IoT Edge per aprirlo.

  3. Selezionare Imposta moduli.

  4. Se il modulo SimulatedTemperatureSensor è stato distribuito in precedenza in questo dispositivo, la compilazione dei campi potrebbe essere automatica. In caso contrario, aggiungere il modulo con la procedura seguente:

    1. Selezionare + Aggiungi e scegliere Modulo IoT Edge.
    2. Per il nome digitare SimulatedTemperatureSensor.
    3. Per l'URI dell'immagine immettere mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.4.
    4. Lasciare le altre impostazioni predefinite e quindi selezionare Aggiungi.
  5. Aggiungere il processo Edge di Analisi di flusso di Azure seguendo questa procedura:

    1. Selezionare + Aggiungi e scegliere Modulo analisi di flusso di Azure.
    2. Selezionare la sottoscrizione e il processo Edge di Analisi di flusso di Azure creato.
    3. Seleziona Salva.

    Dopo aver salvato le modifiche, i dettagli del processo di analisi di flusso vengono pubblicati nel contenitore di archiviazione creato.

  6. Al termine della distribuzione dell'aggiunta di Analisi di flusso, verificare che nella pagina Imposta moduli vengano visualizzati due nuovi moduli.

    Screenshot che conferma che due nuovi moduli si trovano nel dispositivo. Lo screenshot mostra anche dove si trova il pulsante Rivedi e crea.

  7. Selezionare Rivedi e crea. Viene visualizzato il manifesto della distribuzione.

  8. Seleziona Crea.

  9. Nella pagina Imposta moduli del dispositivo, dopo alcuni minuti verranno visualizzati i moduli elencati e in esecuzione. Aggiornare la pagina se non vengono visualizzati i moduli o attendere alcuni minuti, quindi aggiornarla di nuovo.

    Screenshot che mostra l'elenco dei moduli del dispositivo nel portale di Azure.

Comprendere i due nuovi moduli

  1. 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 include l'URI 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 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.

  2. Selezionare Applica se sono state apportate modifiche o Annulla se non sono state apportate modifiche.

Assegnare route ai moduli

  1. Nella pagina Imposta moduli in device:<your-device-name> selezionare Avanti: Route.

  2. Nella scheda Route è possibile definire come vengono passati i messaggi tra i moduli e l'hub IoT. I messaggi vengono costruiti usando coppie nome e valore.

    Aggiungere i nomi e i valori della route con le coppie illustrate nella tabella seguente. Sostituire le istanze di con il nome del modulo di Analisi di flusso di {moduleName} Azure. Questo modulo deve essere lo stesso nome visualizzato nell'elenco dei moduli del dispositivo nella pagina Imposta moduli, come illustrato nella portale di Azure.

    Screenshot che mostra il nome dei moduli di Analisi di flusso nel dispositivo IoT Edge 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.

  3. Seleziona Successivo: Rivedi e crea.

  4. Nella scheda Rivedi e crea è possibile osservare come le informazioni fornite nella procedura guidata vengono convertite in un manifesto della distribuzione JSON.

  5. Al termine della revisione del manifesto, selezionare Crea per completare l'impostazione del modulo.

Visualizzare i dati

È ora possibile passare al dispositivo IoT Edge per visualizzare l'interazione tra il modulo Analisi di flusso di Azure e il modulo SimulatedTemperatureSensor.

Nota

Se si usa una macchina virtuale per un dispositivo, è possibile usare Azure Cloud Shell per accedere direttamente a tutti i servizi autenticati di Azure.

  1. Verificare che tutti i moduli siano in esecuzione in Docker:

    iotedge list  
    
  2. Visualizzare tutti i log di sistema e i dati di metrica. Sostituire {moduleName} con il nome del modulo analisi di flusso di Azure:

    iotedge logs -f {moduleName}  
    
  3. Vedere come il comando reset influisce su 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.

    Screenshot che mostra il comando reset nell'output dei log del modulo.

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:

  1. Accedere al portale di Azure e selezionare Gruppi di risorse.

  2. Selezionare il nome del gruppo di risorse contenente le risorse di test di IoT Edge.

  3. 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 fare clic su 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. È stato quindi caricato questo modulo di Analisi di flusso di Azure nel dispositivo IoT Edge per elaborare e reagire all'aumento della temperatura in locale e inviare il flusso di 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.