Avvio rapido: Distribuire il primo modulo IoT Edge in un dispositivo Windows

Si applica a:  icona Sì IoT Edge 1,1

Provare a Azure IoT Edge in questa guida introduttiva distribuendo il codice in contenitori in un dispositivo Linux IoT Edge Windows. IoT Edge consente di gestire in remoto il codice nei dispositivi, in modo da poter inviare più carichi di lavoro ai dispositivi perimetrali. Per questa guida introduttiva, è consigliabile usare il proprio dispositivo per vedere quanto sia semplice usare Azure IoT Edge per Linux in Windows.

In questa guida introduttiva si apprende come:

  • Creare un hub IoT.
  • Registrare un dispositivo IoT Edge nell'hub IoT.
  • Installare e avviare il IoT Edge per Linux in Windows Runtime nel dispositivo.
  • Distribuire in remoto un modulo in un dispositivo IoT Edge e inviare dati di telemetria.

Diagramma che illustra l'architettura di questa guida introduttiva per il dispositivo e il cloud.

Questa guida introduttiva illustra come configurare il Azure IoT Edge per Linux in un dispositivo Windows. Si distribuirà quindi un modulo dal portale di Azure al dispositivo. Il modulo che verrà utilizzato è un sensore simulato che genera dati su temperatura, umidità e pressione. Altre Azure IoT Edge esercitazioni si basano sul lavoro che si esegue qui distribuendo moduli che analizzano i dati simulati per informazioni dettagliate aziendali.

Se non si ha una sottoscrizione di Azure attiva, creare un account gratuito prima di iniziare.

Prerequisiti

Preparare l'ambiente per l'interfaccia della riga di comando di Azure.

Creare un gruppo di risorse cloud per gestire tutte le risorse che verranno usate in questa guida introduttiva.

az group create --name IoTEdgeResources --location westus2

Assicurarsi che il dispositivo IoT Edge soddisfi i requisiti seguenti:

  • Edizioni

    • Windows 10 versione 1809 o successiva; build 17763 o successiva
      • Professional, Enterprise, IoT Enterprise
    • Windows Server 2019 build 17763 o versione successiva
  • Requisiti hardware

    • Memoria disponibile minima: 1 GB
    • Spazio minimo su disco disponibile: 10 GB

Nota

Questa guida introduttiva usa PowerShell per creare una distribuzione di IoT Edge per Linux in Windows. È anche possibile usare Windows Admin Center. Se si vuole usare Windows Admin Center per creare la distribuzione, seguire la procedura descritta nella guida all'installazione e al provisioning di Azure IoT Edge per Linux in un dispositivo Windows.

Creare un hub IoT

Per iniziare, creare un hub IoT con l'interfaccia della riga di comando di Azure.

Diagramma che illustra il passaggio per creare un hub I o T.

Il livello gratuito di hub IoT di Azure funziona per questa guida introduttiva. Se l'hub IoT è già stato usato in passato ed è disponibile un hub, è possibile usarlo qui.

Il codice seguente crea un hub F1 gratuito nel gruppo di risorse IoTEdgeResources. Sostituire {hub_name} con un nome univoco per l'hub IoT. La creazione di un hub IoT potrebbe richiedere alcuni minuti.

az iot hub create --resource-group IoTEdgeResources --name {hub_name} --sku F1 --partition-count 2

Se viene visualizzato un errore perché nella sottoscrizione è già disponibile un hub gratuito, modificare lo SKU in S1 . Se viene visualizzato un errore che indica che il nome dell'hub IoT non è disponibile, un altro utente ha già un hub con tale nome. Provare con un nuovo nome.

Registrare un dispositivo IoT Edge

Registrare un dispositivo IoT Edge con l'hub IoT appena creato.

Diagramma che illustra il passaggio per registrare un dispositivo con un'identità dell'hub IoT.

Creare un'identità del dispositivo per il dispositivo simulato in modo che possa comunicare con l'hub IoT. L'identità del dispositivo si trova nel cloud e si usa una stringa di connessione del dispositivo univoca per associare un dispositivo fisico a un'identità del dispositivo.

IoT Edge i dispositivi si comportano e possono essere gestiti in modo diverso rispetto ai dispositivi IoT tipici. Usare il --edge-enabled flag per dichiarare che l'identità è per un IoT Edge dispositivo.

  1. In Azure Cloud Shell immettere il comando seguente per creare un dispositivo denominato myEdgeDevice nell'hub.

    az iot hub device-identity create --device-id myEdgeDevice --edge-enabled --hub-name {hub_name}
    

    Se viene visualizzato un errore sulle chiavi dei criteri, assicurarsi che Cloud Shell sia in esecuzione la versione iothubowner più recente dell'estensione Azure IoT locale.

  2. Visualizzare la stringa di connessione per il dispositivo, che collega il dispositivo fisico alla sua identità nell'hub IoT. Contiene il nome dell'hub IoT, il nome del dispositivo e una chiave condivisa che autentica le connessioni tra i due.

    az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name {hub_name}
    
  3. Copiare il valore della chiave connectionString dall'output JSON e salvarlo. Questo valore corrisponde alla stringa di connessione Verrà utilizzato per configurare il runtime IoT Edge nella sezione successiva.

    Screenshot che mostra l'output connectionString in Cloud Shell.

Installare e avviare il runtime di IoT Edge

Installare IoT Edge per Linux in Windows nel dispositivo e configurarlo con la stringa di connessione del dispositivo.

Diagramma che illustra il passaggio per avviare il IoT Edge runtime.

Eseguire i comandi di PowerShell seguenti nel dispositivo di destinazione in cui si vuole distribuire Azure IoT Edge per Linux in Windows. Per eseguire la distribuzione in un dispositivo di destinazione remoto tramite PowerShell, usare PowerShell remoto per stabilire una connessione a un dispositivo remoto ed eseguire questi comandi in remoto in tale dispositivo.

  1. In una sessione di PowerShell con privilegi elevati eseguire ognuno dei comandi seguenti per scaricare IoT Edge per Linux in Windows.

    $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
    $ProgressPreference = 'SilentlyContinue'
    Invoke-WebRequest "https://aka.ms/AzEflowMSI" -OutFile $msiPath
    
  2. Installare IoT Edge per Linux in Windows nel dispositivo.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"
    
  3. Impostare i criteri di esecuzione nel dispositivo di destinazione AllSigned su se non lo è già. È possibile controllare i criteri di esecuzione correnti in un prompt di PowerShell con privilegi elevati usando:

    Get-ExecutionPolicy -List
    

    Se il criterio di esecuzione local machine di non è , è possibile impostare i criteri di esecuzione AllSigned usando:

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    
  4. Creare il IoT Edge per la distribuzione linux in Windows.

    Deploy-Eflow
    
  5. Immettere "Y" per accettare le condizioni di licenza.

  6. Immettere 'O' o 'R' per attivare o disattivare i dati di diagnostica facoltativi, a seconda delle preferenze. Di seguito è illustrata una distribuzione corretta.

    Una distribuzione riuscita dirà "Distribuzione completata" alla fine dei messaggi

  7. Effettuare il provisioning del dispositivo usando la stringa di connessione del dispositivo recuperata nella sezione precedente. Sostituire il testo segnaposto con un valore personalizzato.

    Provision-EflowVm -provisioningType ManualConnectionString -devConnString "<CONNECTION_STRING_HERE>"
    

Il dispositivo IoT Edge è ora configurato. È pronto per eseguire i moduli distribuiti nel cloud.

Distribuire un modulo

Gestire il dispositivo Azure IoT Edge dal cloud per distribuire un modulo che invia dati di telemetria all'hub IoT.

Diagramma che illustra il passaggio per distribuire un modulo.

Una delle funzionalità principali di Azure IoT Edge è la distribuzione di codice nel IoT Edge dispositivi dal cloud. I moduli IoT Edge sono pacchetti eseguibili implementati come contenitori. In questa sezione si distribuirà un modulo predefinito dalla sezione moduli IoT Edge di Azure Marketplace direttamente da hub IoT di Azure.

Questo modulo simula un sensore e invia i dati generati. Si tratta di un codice utile per iniziare a usare IoT Edge, perché è possibile usare i dati simulati per lo sviluppo e i test. Per informazioni specifiche sul funzionamento di questo modulo, è possibile visualizzare il codice sorgente del sensore temperatura simulato.

Seguire questa procedura per distribuire il primo modulo da Azure Marketplace.

  1. Accedere al portale di Azure passare all'hub IoT.

  2. Nel menu a sinistra, in Gestione automatica dispositivi, selezionare IoT Edge.

  3. Selezionare l'ID dispositivo del dispositivo di destinazione nell'elenco dei dispositivi.

  4. Sulla barra superiore selezionare Imposta moduli.

    Screenshot che mostra la selezione di Imposta moduli.

  5. In IoT Edge Moduli aprire il menu a discesa Aggiungi e quindi selezionare Modulo Marketplace.

    Screenshot che mostra il menu a discesa Aggiungi.

  6. In IoT Edge Marketplace del modulo cercare e selezionare il Simulated Temperature Sensor modulo.

    Il modulo viene aggiunto alla sezione moduli IoT Edge con lo stato di esecuzione desiderato.

  7. Selezionare Avanti: Route per continuare con il passaggio successivo della procedura guidata.

    Screenshot che mostra come continuare con il passaggio successivo dopo l'aggiunta del modulo.

  8. Nella scheda Route rimuovere la route predefinita, la route e quindi selezionare Avanti: Rivedi e crea per continuare con il passaggio successivo della procedura guidata.

    Nota

    Le route vengono costruite usando coppie nome/valore. In questa pagina verranno visualizzate due route. La route predefinita, route, invia tutti i messaggi all'hub IoT (denominato $upstream ). Una seconda route, SimulatedTemperatureSensorToIoTHub, è stata creata automaticamente quando è stato aggiunto il modulo da Azure Marketplace. Questa route invia tutti i messaggi dal modulo temperatura simulata all'hub IoT. È possibile eliminare la route predefinita perché in questo caso è ridondante.

    Screenshot che mostra la rimozione della route predefinita e il passaggio successivo.

  9. Esaminare il file JSON e quindi selezionare Crea. Il file JSON definisce tutti i moduli distribuiti nel dispositivo IoT Edge dispositivo. Verranno visualizzati il modulo SimulatedTemperatureSensor e i due moduli di runtime, edgeAgent e edgeHub.

    Nota

    Quando si invia una nuova distribuzione a un dispositivo IoT Edge, non viene eseguito il push di alcun elemento al dispositivo. Al contrario, il dispositivo richiede periodicamente eventuali nuove istruzioni all'hub IoT. Se il dispositivo trova un manifesto della distribuzione aggiornato, usa le informazioni sulla nuova distribuzione per eseguire il pull delle immagini dei moduli dal cloud, quindi avvia l'esecuzione dei moduli in locale. Questo processo può richiedere alcuni minuti.

  10. Dopo aver creato i dettagli della distribuzione dei moduli, la procedura guidata torna nella pagina Dettagli dispositivo. Visualizzare lo stato della distribuzione nella scheda Moduli.

    Dovrebbero essere visualizzati tre moduli: $edgeAgent, $edgeHub e SimulatedTemperatureSensor. Se uno o più moduli hanno in SPECIFIED IN DEPLOYMENT ma non in REPORTED BY DEVICE, il dispositivo IoT Edge sta ancora avviando. Attendere alcuni minuti e quindi aggiornare la pagina.

    Screenshot che mostra il sensore di temperatura simulato nell'elenco dei moduli distribuiti.

Visualizzare i dati generati

In questa guida introduttiva è stato creato un nuovo dispositivo IoT Edge, nel quale è stato installato il runtime di IoT Edge. È stato quindi usato il portale di Azure per distribuire un modulo IoT Edge da eseguire nel dispositivo senza dover apportare modifiche al dispositivo stesso.

Il modulo di cui è stato fatto il push genera dati dell'ambiente di esempio che è possibile usare per il test in un secondo momento. Il sensore simulato monitora un macchinario e l'ambiente intorno al macchinario. Questo sensore può trovarsi ad esempio in una stanza di server, in un ambiente di produzione o in una turbina eolica. I messaggi inviati includono temperatura ambiente e umidità, temperatura della macchina e pressione e un timestamp. IoT Edge esercitazioni usano i dati creati da questo modulo come dati di test per l'analisi.

  1. Accedere alla macchina virtuale IoT Edge per Linux in Windows usando il comando seguente nella sessione di PowerShell:

    Connect-EflowVm
    

    Nota

    L'unico account consentito a SSH per la macchina virtuale è l'utente che l'ha creata.

  2. Dopo aver eseguito l'accesso, è possibile controllare l'elenco dei moduli IoT Edge usando il comando Linux seguente:

    sudo iotedge list
    

    Verificare che il sensore di temperatura, l'agente e l'hub siano in esecuzione.

  3. Visualizzare i messaggi inviati dal modulo del sensore di temperatura al cloud usando il comando Linux seguente:

    sudo iotedge logs SimulatedTemperatureSensor -f
    

    Importante

    IoT Edge comandi fanno distinzione tra maiuscole e minuscole quando fanno riferimento ai nomi dei moduli.

    Visualizzare i log di output del modulo Sensore temperatura simulata.

È anche possibile usare l'estensione hub IoT di Azure per Visual Studio Code per controllare l'arrivo dei messaggi all'hub IoT.

Pulire le risorse

Se si vuole continuare con le esercitazioni IoT Edge, ignorare questo passaggio. È possibile usare il dispositivo registrato e configurato in questa guida introduttiva. In caso contrario, è possibile eliminare le risorse di Azure create per evitare addebiti.

Se la macchina virtuale e l'hub IoT sono stati creati in un nuovo gruppo di risorse, è possibile eliminare il gruppo e tutte le risorse associate. Se non si vuole eliminare l'intero gruppo, è possibile eliminare le singole risorse.

Importante

Controllare il contenuto del gruppo di risorse per assicurarsi che non ci siano elementi da mantenere. L'eliminazione di un gruppo di risorse è irreversibile.

Usare il comando seguente per rimuovere il gruppo IoTEdgeResources. L'eliminazione potrebbe richiedere alcuni minuti.

az group delete --name IoTEdgeResources

È possibile verificare che il gruppo di risorse sia stato rimosso usando questo comando per visualizzare l'elenco dei gruppi di risorse.

az group list

Rimuovere Azure IoT Edge per Linux in Windows

Usare l'estensione dashboard in Windows Admin Center per disinstallare Azure IoT Edge per Linux in Windows.

  1. Connettersi al dispositivo IoT Edge in Windows Admin Center. Viene caricata l'estensione dello strumento dashboard di Azure.

  2. Selezionare Disinstalla. Dopo Azure IoT Edge rimozione, Windows Admin Center la voce Azure IoT Edge connessione del dispositivo dalla pagina Iniziale.

Nota

Un altro modo per rimuovere Azure IoT Edge dal sistema Windows è selezionare Start > Settings > Apps > Azure IoT Edge LTS Uninstall nel > dispositivo IoT Edge. Questo metodo rimuove Azure IoT Edge dal dispositivo IoT Edge, ma lascia la connessione in Windows Admin Center. Per completare la rimozione, disinstallare Windows Admin Center dal menu Impostazioni.

Passaggi successivi

In questa guida introduttiva è stato creato un dispositivo IoT Edge ed è stata usata l'interfaccia cloud di Azure IoT Edge per distribuire il codice nel dispositivo. È ora disponibile un dispositivo di test che genera dati non elaborati sul relativo ambiente.

Configurare quindi l'ambiente di sviluppo locale in modo da iniziare a creare IoT Edge moduli che eseguono la logica di business.