Condividi tramite


Avvio rapido: Implementare il primo modulo IoT Edge su un dispositivo Windows

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.

Prova Azure IoT Edge in questo avvio rapido distribuendo il codice containerizzato in un dispositivo IoT Edge basato su Linux su Windows. IoT Edge consente di gestire il codice sui dispositivi da remoto in modo da poter inviare più carichi di lavoro all'edge. Per questa guida introduttiva, è consigliabile usare il proprio dispositivo client Windows per vedere quanto sia facile usare Azure IoT Edge per Linux in Windows. Se si desidera utilizzare Windows Server o una VM di Azure per creare la distribuzione, seguire i passaggi descritti nella guida su come installare e effettuare il provisioning di Azure IoT Edge per Linux su 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 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 mostra l'architettura di questo avvio rapido per il dispositivo e il cloud.

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

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

Prerequisiti

Preparare l'ambiente per il Azure CLI.

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

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 disponibile minima: 1 GB
    • Spazio libero minimo su disco: 10 GB

Creare un hub IoT

Per iniziare, creare un hub IoT usando il Azure CLI.

Diagramma che mostra il passaggio per creare un hub IoT.

Il livello gratuito di Azure IoT Hub funziona per questa configurazione rapida. Se in precedenza è stato usato IoT Hub e si dispone già di un hub, è possibile usare tale IoT hub.

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, 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 risiede nel cloud e si utilizza una stringa di connessione univoca per associare un dispositivo fisico all'identità del dispositivo.

IoT Edge i dispositivi si comportano e possono essere gestiti in modo diverso rispetto ai dispositivi IoT tipici. Usare il flag --edge-enabled per dichiarare che questa identità è per 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 si verifica un errore relativo alle chiavi delle policy iothubowner, verifica che Cloud Shell stia eseguendo la versione più recente dell'estensione Azure IoT.

  2. Visualizza la stringa di connessione per il tuo dispositivo, che collega il dispositivo fisico alla sua identità in IoT Hub. Contiene il nome dell'hub IoT, il nome del dispositivo e quindi 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. Usarlo per configurare il runtime IoT Edge nella sezione successiva.

    Ad esempio, il connection string dovrebbe essere simile a HostName=contoso-hub.azure-devices.net;DeviceId=myEdgeDevice;SharedAccessKey=<DEVICE_SHARED_ACCESS_KEY>.

Installare e avviare il runtime di IoT Edge

Installare IoT Edge per Linux su Windows sul dispositivo e configurarlo con il device connection string.

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

    • X64/AMD64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_5_LTS_X64" -OutFile $msiPath
      
    • ARM64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_5_LTS_ARM64" -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. Impostare i criteri di esecuzione nel dispositivo di destinazione su AllSigned se non lo è già. È possibile controllare i criteri di esecuzione correnti in un prompt di PowerShell con privilegi elevati usando:

    Get-ExecutionPolicy -List
    

    Se i criteri di esecuzione di local machine non sono AllSigned, impostare i criteri di esecuzione usando il comando seguente:

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    
  5. Creare il IoT Edge per Linux nella distribuzione 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 , a seconda delle preferenze. Nella figura seguente viene illustrata una distribuzione riuscita.

    Screenshot che mostra che una distribuzione corretta avrà la dicitura Distribuzione riuscita alla fine dei messaggi nella console.

  8. Fornire il dispositivo utilizzando la stringa di connessione del dispositivo recuperata nella sezione precedente. Sostituire il segnaposto con 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 a IoT Hub.

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. IoT Edge moduli sono pacchetti eseguibili implementati come contenitori. In questa sezione si distribuirà un modulo predefinito dalla sezione IoT Edge Modules di Microsoft Artifact Registry.

Questo modulo simula un sensore e invia i dati generati. Questo modulo è una parte utile di codice quando si inizia a usare IoT Edge perché è possibile usare i dati simulati per lo sviluppo e il test. Per visualizzare esattamente le funzionalità di questo modulo, è possibile visualizzare il codice sorgente del sensore di temperatura simulato.

Seguire questa procedura per distribuire il primo modulo.

  1. Accedere al portale Azure e passare al IoT Hub.

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

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

    Note

    Quando si crea un nuovo dispositivo IoT Edge, viene 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.

    Scegliere i moduli da eseguire nel dispositivo. È possibile scegliere tra i moduli già creati, i moduli di Registro artefatto Microsoft o i moduli creati manualmente. In questa guida introduttiva, si effettua il deployment di un modulo dal Microsoft Artifact Registry.

  5. Nella sezione IoT Edge modules selezionare Add quindi scegliere IoT Edge Module.

  6. Aggiornare le impostazioni del modulo seguenti:

    Impostazione valore
    Nome modulo IoT SimulatedTemperatureSensor
    URI dell'immagine mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:latest
    Criterio di riavvio sempre
    Stato desiderato in esecuzione
  7. Selezionare Avanti: Route per continuare a configurare le route.

  8. Aggiungere una route che invia tutti i messaggi dal modulo temperatura simulata a IoT Hub.

    Impostazione valore
    Nome SimulatedTemperatureSensorToIoTHub
    valore FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
  9. Selezionare Avanti: Revisiona e crea.

  10. Esaminare il file JSON e quindi selezionare Crea. Il file JSON definisce tutti i moduli distribuiti nel dispositivo IoT Edge.

    Note

    Quando si invia una nuova distribuzione a un dispositivo IoT Edge, non viene trasferito nulla al dispositivo. Invece, il dispositivo interroga regolarmente IoT Hub per eventuali nuove istruzioni. Se il dispositivo trova un manifesto di distribuzione aggiornato, usa le informazioni sulla nuova distribuzione per eseguire il pull delle immagini del modulo dal cloud, quindi avvia l'esecuzione dei moduli in locale. Il processo potrebbe richiedere alcuni minuti.

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.

Saranno elencati tre moduli: $edgeAgent, $edgeHub, e SimulatedTemperatureSensor. Se uno o più moduli hanno Yes in Specified in Deployment ma non in Reported by Device, il dispositivo IoT Edge è ancora in fase di avvio. Attendere alcuni minuti e quindi aggiornare la pagina.

Screenshot che mostra SimulatedTemperatureSensor nell'elenco dei moduli distribuiti.

In caso di problemi nel rilascio dei moduli, consultare Risoluzione dei problemi dei dispositivi IoT Edge dal portale di Azure.

Visualizzare i dati generati

Nella presente guida rapida, hai creato un nuovo dispositivo IoT Edge e installato il runtime 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 si esegue il push genera dati di ambiente di esempio che è possibile usare per il test in un secondo momento. Il sensore simulato monitora sia un computer che l'ambiente intorno al computer. Questo sensore può trovarsi ad esempio in una sala server, in una fabbrica o su una turbina eolica. I messaggi inviati includono la temperatura e l'umidità dell'ambiente, la temperatura e la pressione dell'apparecchiatura e un timestamp. Le esercitazioni di IoT Edge utilizzano i dati creati da questo modulo come dati per il collaudo per l'analisi.

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

    Connect-EflowVm
    

    Note

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

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

    sudo iotedge list
    

    Screenshot che mostra dove verificare che i moduli del sensore temperatura, dell'agente e dell'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
    

    Screenshot che mostra i log di output del modulo Sensore temperatura simulato quando in esecuzione.

    Suggerimento

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

Pulire le risorse

Per continuare con le esercitazioni IoT Edge, ignorare questo passaggio. È possibile usare il dispositivo registrato e configurato in questo avvio rapido. In caso contrario, eliminare le risorse Azure create per evitare addebiti.

Se è stata creata la macchina virtuale e l'hub IoT in un nuovo gruppo di risorse, eliminare tale gruppo e tutte le risorse associate. Se non si vuole eliminare l'intero gruppo, eliminare invece singole risorse.

Importante

Verificare il contenuto del gruppo di risorse per assicurarsi che non vi siano dati 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 su Windows dal dispositivo, utilizzare i seguenti passaggi.

  1. Apri Impostazioni su Windows.
  2. Selezionare Aggiungi o Rimuovi Programmi.
  3. Selezionare l'app Azure IoT Edge.
  4. Seleziona Disinstalla.

Passaggi successivi

In questa guida introduttiva è stato creato un dispositivo IoT Edge ed è stata usata l'interfaccia cloud Azure IoT Edge per distribuire il codice nel dispositivo. A questo punto, è disponibile un dispositivo di test che genera dati non elaborati relativi al proprio ambiente.

Nell'esercitazione successiva si apprenderà come monitorare l'attività e l'integrità del dispositivo dal portale di Azure.