Condividi tramite


Esercitazione: Distribuire Azure Stream Analytics come modulo di IoT Edge

Applica a:IoT Edge 1.5 segno di spunta IoT Edge 1.5

Importante

IoT Edge 1.5 LTS è la versione supportata. IoT Edge 1,4 LTS ha raggiunto la fine della vita il 12 novembre 2024. Se si usa una versione precedente, vedere Update IoT Edge.

In questa esercitazione viene creato un processo Azure Stream Analytics nel portale di Azure e distribuito come modulo IoT Edge senza codice aggiuntivo.

In questa esercitazione si apprenderà come:

  • Creare un processo di Azure Stream Analytics per elaborare i dati all'edge.
  • Connettere il nuovo processo di Azure Stream Analytics con altri moduli di IoT Edge.
  • Distribuire il job di Azure Stream Analytics su un dispositivo IoT Edge tramite il portale di Azure.

Diagram che mostra l'architettura del flusso, inclusa la preparazione e l'implementazione di un processo Azure Stream Analytics.

Il modulo di Analisi di flusso in questa esercitazione calcola la temperatura media in una finestra mobile di 30 secondi. Quando la media raggiunge 70, il modulo invia un avviso per consentire al dispositivo di intervenire. In questo caso, l'azione consiste nel reimpostare il sensore di temperatura simulato. In un ambiente di produzione è possibile usare questa funzionalità per spegnere un computer o adottare misure preventive quando la temperatura raggiunge livelli pericolosi.

Perché usare Azure Stream Analytics in IoT Edge?

Molte soluzioni IoT usano servizi di analisi per ottenere informazioni sui dati quando arrivano nel cloud dai dispositivi IoT. Usando Azure IoT Edge, si sposta Azure Stream Analytics logica nel dispositivo stesso. Elaborando i flussi di telemetria sul perimetro, è possibile ridurre la quantità di dati caricati e il tempo necessario per reagire a informazioni dettagliate di utilità pratica. Azure IoT Edge e Azure Stream Analytics integrano per semplificare lo sviluppo dei carichi di lavoro.

Azure Stream Analytics usa una sintassi di query strutturata per l'analisi dei dati nel cloud e nei dispositivi IoT Edge. Per altre informazioni, vedere Azure Stream Analytics documentazione.

Prerequisiti

Se non si ha un account Azure, creare un account free prima di iniziare.

Creare un job di Azure Stream Analytics

In questa sezione viene creato un processo Azure Stream Analytics che:

  • Riceve i dati dal dispositivo IoT Edge.
  • Esegue una query sui dati di telemetria per i valori esterni a un intervallo impostato.
  • Sulla base dei risultati della query, si esegue un'azione sul dispositivo IoT Edge.

Creare un account di archiviazione

Quando si crea un processo Azure Stream Analytics da eseguire in un dispositivo IoT Edge, è necessario archiviarlo in modo che il dispositivo possa accedervi. È possibile usare un account Azure Storage esistente o crearne uno nuovo.

  1. Nel portale di Azure, vai a Crea una risorsa > Storage > Account di archiviazione.

  2. Specificare i valori seguenti per creare l'account di archiviazione:

    Campo valore
    Abbonamento Scegliere la stessa sottoscrizione dell'hub IoT.
    Gruppo di risorse Usare lo stesso gruppo di risorse per tutte le risorse di test per le guide introduttive e le esercitazioni di IoT Edge. Ad esempio, IoTEdgeResources.
    Nome Immettere un nome univoco per l'account di archiviazione.
    Location Selezionare una posizione nelle vicinanze.
  3. Mantenere i valori predefiniti per gli altri campi e selezionare Rivedi e crea.

  4. Esaminare le impostazioni e quindi selezionare Crea.

Creare un nuovo processo

  1. Nel portale Azure selezionare:

    1. Creare una risorsa
    2. Internet delle cose dal menu a sinistra
    3. Digitare Stream Analytics nella barra di ricerca per trovarla in Azure Marketplace
    4. Selezionare Crea, quindi Processo di Analisi di flusso dal menu a discesa
  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 Usare lo stesso gruppo di risorse per tutte le risorse di test create durante le guide introduttive e le esercitazioni IoT Edge. Ad esempio, una risorsa denominata IoTEdgeResources.
    Region Scegliere una località vicina.
    Ambiente di hosting Selezionare Edge. Questa opzione consente di eseguire la distribuzione in un dispositivo IoT Edge anziché nel cloud.
  3. Selezionare Rivedi e crea.

  4. Confermare le opzioni e quindi selezionare Crea.

Configurare il processo

Dopo aver creato il tuo Stream Analytics nel portale di Azure, configuralo con un input, un output e una query da eseguire sui dati che passano attraverso.

Questa sezione illustra come creare un processo che riceve dati sulla temperatura da un dispositivo IoT Edge. Analizza i dati in una finestra di 30 secondi in sequenza. Se la temperatura media in tale finestra supera i 70 gradi, il processo invia un avviso al dispositivo IoT Edge.

Note

Specificare da dove provengono e dove vanno i dati nella sezione successiva, Configurare le impostazioni 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, quindi selezionare Aggiungi input.

  3. Scegliere Hub edge dall'elenco a discesa.

    Se nell'elenco non viene visualizzata l'opzione Hub Edge , è 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, inserire la temperatura come Alias di input.

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

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

  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 reset all'output dell'avviso se la temperatura media della macchina in una finestra di 30 secondi raggiunge i 70 gradi. Il comando reset è preprogrammato nel sensore come azione.

  3. Selezionare Salva query.

Configurare le impostazioni di IoT Edge

Per distribuire il processo di Analisi di flusso in un dispositivo IoT Edge, associare il processo di Azure Stream Analytics a un account di archiviazione. Quando si distribuisce il processo, la definizione del processo viene esportata nell'account di archiviazione come un contenitore.

  1. Nel servizio Stream Analytics, nel menu Impostazioni, selezionare Impostazioni account di archiviazione.

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

  3. L'account di archiviazione Azure viene visualizzato automaticamente nella pagina. Se non viene mostrato alcun account, assicurarsi di creare una risorsa di archiviazione. Se è necessario scegliere una risorsa di archiviazione diversa da quella elencata nel campo Account di archiviazione , selezionarla dal menu a discesa.

  4. Selezionare Salva se sono state apportate modifiche.

Distribuire il processo

È ora possibile distribuire il processo di Azure Stream Analytics nel dispositivo IoT Edge.

In questa sezione viene usata la procedura guidata Set Modules nel portale di Azure per creare un manifesto deployment. 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 da IoT Hub, quindi usa le informazioni in esso 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 del dispositivo 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. Se non dovesse aprirsi, aggiungere il modulo con questa procedura:

    1. Selezionare + Aggiungi e scegliere IoT Edge Modulo.
    2. Per il nome digitare SimulatedTemperatureSensor.
    3. Per l'URI dell'immagine, immettere mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.5.
    4. Lasciare le altre impostazioni come predefinite e quindi selezionare Aggiungi.
  5. Segui i seguenti passaggi per aggiungere il tuo processo di lavoro Azure Stream Analytics Edge:

    1. Selezionare + Aggiungi e scegliere Azure Stream Analytics Module.
    2. Seleziona la tua sottoscrizione e il processo di Azure Stream Analytics Edge che hai 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’elemento aggiuntivo Analisi di flusso, verificare che nella pagina Imposta moduli appaiano 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 mostrato il manifesto della distribuzione.

  8. Fare clic su Crea.

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

  1. Nella scheda Imposta moduli del dispositivo selezionare il nome del modulo di Analisi di flusso per passare alla pagina Update IoT Edge Module. Qui è possibile aggiornare le impostazioni.

    La scheda Settings contiene l'URI Image che punta a un'immagine standard di Azure Stream Analytics. Questa singola immagine viene usata per ogni modulo di Analisi di flusso distribuito in un dispositivo IoT Edge.

    La scheda Module Twin Settings mostra il codice JSON che definisce la proprietà Azure Stream Analytics (ASA) 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 nel dispositivo:<your-device-name>, selezionare Avanti: Route.

  2. Nella scheda Routes definire il modo in cui i messaggi vengono passati tra i moduli e i IoT Hub. 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 Azure Stream Analytics. Questo modulo deve avere lo stesso nome che si vede nell'elenco dei moduli del dispositivo sulla pagina Imposta moduli, come mostrato nel portale di Azure.

    Screenshot che mostra il nome dei moduli di Stream Analytics nel tuo dispositivo IoT Edge nel portale 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 di SimulatedTemperatureSensor vengono inviati a IoT Hub e al temperature input configurato nel processo di Analisi di flusso. I messaggi di output alert vengono inviati a IoT Hub e al modulo SimulatedTemperatureSensor per attivare il comando reset.

  3. Selezionare Avanti: Revisiona 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. Una volta revisionato il manifesto, selezionare Crea per completare l'impostazione del modulo.

Visualizzare i dati

Passare al dispositivo IoT Edge per visualizzare l'interazione tra il modulo Azure Stream Analytics e il modulo SimulatedTemperatureSensor.

Note

Se si usa una macchina virtuale per un dispositivo, usare il Azure Cloud Shell per accedere direttamente a tutti i servizi autenticati 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 Azure Stream Analytics:

    iotedge logs -f {moduleName}  
    
  3. 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.

    Screenshot del comando reset nell'output dei log del modulo.

Pulire le risorse

Se si vuole continuare con l'articolo consigliato successivo, mantenere le risorse e le configurazioni create e riutilizzarle. È anche possibile continuare a usare lo stesso dispositivo IoT Edge di un dispositivo di test.

In caso contrario, eliminare le configurazioni locali e Azure risorse usate in questo articolo per evitare addebiti.

Eliminare Azure risorse

Non è possibile annullare l'eliminazione di Azure risorse e gruppi di risorse. Assicurarsi di non eliminare accidentalmente il gruppo di risorse sbagliato o le risorse errate. Se è stato creato il IoT Hub all'interno di un gruppo di risorse esistente con risorse da conservare, eliminare solo la risorsa IoT Hub stessa, non il gruppo di risorse.

Per eliminare le risorse:

  1. Accedere al portale di Azure e quindi selezionare Gruppi di risorse.
  2. Selezionare il nome del gruppo di risorse che contiene le risorse di test IoT Edge.
  3. Esaminare l'elenco delle risorse contenute nel gruppo di risorse. Per eliminarli tutti, è possibile selezionare Elimina gruppo di risorse. Se si vogliono eliminare solo alcuni di essi, selezionare ogni risorsa per eliminarle singolarmente.

Passaggi successivi

In questa esercitazione, configuri un job di Azure Stream Analytics per analizzare i dati provenienti dal dispositivo IoT Edge. Il modulo Azure Stream Analytics è stato caricato nel dispositivo IoT Edge per elaborare e reagire all'aumento della temperatura in locale e inviare il flusso di dati aggregati al cloud. Per sapere come Azure IoT Edge può aiutarti a creare più soluzioni, continua con il tutorial successivo.