Condividi tramite


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

Si applica a:Icona di conferma IoT Edge 1.1

Importante

IoT Edge 1.1 data di fine del supporto è stata il 13 dicembre 2022. Controlla il ciclo di vita dei prodotti Microsoft per ottenere informazioni sul modo in cui viene supportato questo prodotto, servizio, tecnologia o API. Per altre informazioni sull'aggiornamento alla versione più recente di IoT Edge, vedere Aggiornare IoT Edge.

Per provare Azure IoT Edge in questa guida rapida, implementare il codice containerizzato su un dispositivo Linux su Windows IoT Edge. IoT Edge consente di gestire in remoto il codice nei dispositivi, in modo da poter inviare più carichi di lavoro ai dispositivi perimetrali. Per questo avvio rapido, è consigliabile usare il proprio dispositivo Client Windows in modo da poter constatare quanto sia facile usare Azure IoT Edge per Linux in Windows. Se si vuole usare Windows Server o una macchina virtuale di Azure per creare la distribuzione, seguire la procedura descritta nella guida pratica sull'installazione e il provisioning di Azure IoT Edge per Linux in un dispositivo Windows.

In questa guida introduttiva si apprende come:

  • Creare un hub IoT.
  • Registrare un dispositivo IoT Edge nell'hub IoT.
  • Installare e avviare 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 mostra l'architettura di questa guida introduttiva per i tuoi dispositivi e il cloud.

Questo avvio rapido ti guida attraverso la configurazione di Azure IoT Edge per Linux su un dispositivo Windows. Quindi, si distribuirà un modulo dal portale di Azure al proprio dispositivo. Il modulo che verrà usato è un sensore simulato che genera dati relativi a temperatura, umidità e pressione. Altre esercitazioni per Azure IoT Edge si basano sul lavoro svolto qui con la distribuzione di moduli che analizzano dati simulati per ottenere informazioni aziendali accurate.

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

Prerequisiti

Preparare l'ambiente per la CLI di Azure.

Creare un gruppo di risorse cloud per gestire tutte le risorse che verranno usate in questo avvio rapido.

az group create --name IoTEdgeResources --location westus2

Assicurarsi che il dispositivo IoT Edge soddisfi i requisiti seguenti:

  • Requisiti di sistema

    • Windows 101/11 (Pro, Enterprise, IoT Enterprise) 1 Windows 10 build minima 17763 con tutti gli aggiornamenti cumulativi correnti installati.
  • Requisiti hardware

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

Annotazioni

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 pratica sull'installazione e il 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 mostra il passaggio per creare un hub I o T.

Per questo avvio rapido è possibile usare il livello gratuito dell'hub IoT di Azure. Se in passato hai usato IoT Hub e hai già creato un hub, puoi utilizzare quel hub IoT.

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 si verifica un errore perché è già presente un hub gratuito nella sottoscrizione, modificare lo SKU in S1. Se si verifica un errore che indica che il nome dell'hub IoT non è disponibile, significa che qualcuno ha già un hub con lo stesso nome. Provare con un nuovo nome.

Registrare un dispositivo IoT Edge

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

Diagramma che mostra 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.

I dispositivi IoT Edge si comportano e possono essere gestiti in modo diverso rispetto a tipici dispositivi IoT. Usare il flag --edge-enabled per dichiarare che questa identità è destinata a un dispositivo IoT Edge.

  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 appare un errore relativo alle chiavi dei criteri iothubowner, assicurati che Cloud Shell esegua la versione più recente dell'estensione Azure IoT.

  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 è la stringa di connessione del dispositivo. Verrà usato per configurare il runtime di IoT Edge nella sezione successiva.

    Screenshot che mostra l'output della stringa di connessione 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 mostra il passaggio per avviare il runtime di IoT Edge.

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 remota tramite PowerShell, usare Remote PowerShell per stabilire una connessione a un dispositivo remoto ed eseguire questi comandi in remoto su tale dispositivo.

  1. In una sessione di PowerShell con privilegi elevati, eseguire il comando seguente per abilitare Hyper-V. Per altre informazioni, vedere Hyper-V in Windows 10.

    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
    
  2. 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
    
  3. Installare IoT Edge per Linux in Windows nel dispositivo.

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

    Get-ExecutionPolicy -List
    

    Se il criterio di esecuzione di local machine non è AllSigned, è possibile impostarlo come segue:

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    
  5. Creare la distribuzione di IoT Edge per Linux su Windows.

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

  7. Immettere "O" o "R" per attivare o disattivare i Dati di diagnostica facoltativi in base alle proprie preferenze. Di seguito è mostrata un'implementazione riuscita.

    Una distribuzione con esito positivo indcherà

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

    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 mostra il passaggio per distribuire un modulo.

Una delle funzionalità principali di Azure IoT Edge consiste nella distribuzione del codice nei dispositivi IoT Edge 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 dall'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 e passare all'hub IoT.

  2. Dal menu a sinistra, selezionare Dispositivi nel menu Gestione dispositivi.

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

    Quando si crea un nuovo dispositivo IoT Edge, verrà visualizzato il codice di stato 417 -- The device's deployment configuration is not set nel portale di Azure. Questo stato è normale e significa che il dispositivo è pronto per ricevere una distribuzione del modulo.

  4. Sulla barra superiore selezionare Imposta moduli.

    Screenshot che mostra la selezione di Imposta Moduli.

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

    Screenshot che mostra il menu a tendina Aggiungi.

  6. In IoT Edge Module Marketplacecercare e selezionare il modulo Simulated Temperature Sensor.

    Il modulo viene aggiunto alla sezione Moduli IoT Edge con lo stato desiderato di in modalità di esecuzione.

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

    Screenshot che mostra 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.

    Annotazioni

    I percorsi vengono costruiti usando coppie di nome e valore. In questa pagina dovresti vedere due percorsi. 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 quindi il passaggio al passaggio successivo.

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

    Annotazioni

    Quando si invia una nuova distribuzione a un dispositivo IoT Edge, nessun elemento viene trasferito al dispositivo. Il dispositivo esegue invece regolarmente una query nell'hub IoT per ottenere eventuali nuove istruzioni. 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 e 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 ti riporta alla 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 SPECIFICATO NELLA DISTRIBUZIONE, ma non in SEGNALATO DAL DISPOSITIVO, il dispositivo IoT Edge li sta ancora avviando. Attendere alcuni minuti e quindi aggiornare la pagina.

    Screenshot che mostra il sensore 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 di IoT Edge da eseguire nel dispositivo senza dovere apportare modifiche al dispositivo stesso.

Il modulo di cui è stato eseguito il push genera dati di ambiente di esempio che è possibile usare per 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 sala server, in una fabbrica o su una turbina eolica. I messaggi inviati includono temperatura e umidità ambientale, temperatura e pressione dell’apparecchiatura e un timestamp. Le esercitazioni di IoT Edge usano i dati creati da questo modulo come dati di test per le analisi.

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

    Connect-EflowVm
    

    Annotazioni

    L'unico account autorizzato a connettersi tramite SSH alla macchina virtuale è quello dell'utente che lo ha creato.

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

    sudo iotedge list
    

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

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

    sudo iotedge logs SimulatedTemperatureSensor -f
    

    Importante

    Quando fanno riferimento a nomi di moduli, I comandi di IoT Edge fanno distinzione tra maiuscole e minuscole.

    Visualizza i log di output del modulo Sensore di Temperatura Simulato.

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

Pulire le risorse

Se si vuole continuare con le esercitazioni di IoT Edge, ignorare questo passaggio. È possibile usare il dispositivo registrato e configurato in questo avvio rapido. 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 vi siano elementi da conservare. 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

Per confermare la rimozione del gruppo di risorse, usare questo comando per visualizzare l'elenco dei gruppi di risorse.

az group list

Disinstallare IoT Edge per Linux in Windows

Per rimuovere l'installazione di Azure IoT Edge per Linux in Windows dal dispositivo, utilizzare i comandi seguenti.

  1. Aprire Impostazioni in Windows
  2. Seleziona Aggiungi o Rimuovi Programmi
  3. Selezionare Azure IoT Edge LTS app
  4. Seleziona Disinstalla

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. A questo punto, si dispone di un dispositivo di test che genera dati non elaborati relativi al proprio ambiente.

Nel prossimo tutorial, scoprirai come monitorare l'attività e lo stato di salute del tuo dispositivo dal portale di Azure.