Esercitazione: Configurare un ambiente per l'apprendimento automatico in IoT Edge

Si applica a: Icona Sì IoT Edge 1.1

Importante

La data di fine del supporto di IoT Edge 1.1 è 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.

Questo articolo illustra come preparare l'ambiente per lo sviluppo e la distribuzione. Configurare prima di tutto un computer di sviluppo con tutti gli strumenti necessari. Quindi creare le risorse cloud necessarie in Azure.

In questa sezione dell'esercitazione si apprende come:

  • Configurare una macchina virtuale per lo sviluppo.
  • Configurare un hub IoT e l'archiviazione nel cloud per l'ambiente di sviluppo da usare.

Prerequisiti

Questo articolo fa parte di una serie di documenti relativi a un'esercitazione sull'uso di Azure Machine Learning in IoT Edge. Ogni articolo della serie si basa sulle attività di quello precedente. Se questo articolo è stato aperto direttamente, vedere il primo articolo della serie.

Configurare la VM di sviluppo

Questo passaggio viene in genere eseguito da sviluppatori cloud. Parte del software può risultare utile anche ai data scientist.

È stato creato uno script di PowerShell che crea una macchina virtuale di Azure con molti prerequisiti già configurati. La VM da creare deve essere in grado di gestire la virtualizzazione annidata, per cui sono state scelte le dimensioni della macchina Standard_D8s_v3.

La VM di sviluppo verrà configurata con:

La macchina virtuale per sviluppatori non è strettamente necessaria. Tutti gli strumenti di sviluppo possono essere eseguiti in un computer locale. Tuttavia, è consigliabile usare la VM per assicurare un ambiente uniforme.

Per creare e configurare la macchina virtuale sono necessari circa 30 minuti.

  1. Clonare o scaricare il repository di esempi di Machine Learning e IoT Edge nel computer locale.

  2. Aprire PowerShell come amministratore e passare alla directory \IoTEdgeAndMlSample\DevVM che si trova nella directory radice in cui è stato scaricato il codice. La directory radice dell'origine verrà identificata come srcdir.

    cd c:\srcdir\IoTEdgeAndMlSample\DevVM
    

    La directory DevVM contiene i file necessari per creare una macchina virtuale di Azure appropriata per completare questa esercitazione.

  3. Eseguire il comando seguente per consentire l'esecuzione degli script. Quando richiesto, scegliere Sì per tutti.

    Set-ExecutionPolicy Bypass -Scope Process
    
  4. Eseguire Create-AzureDevVM.ps1.

    .\Create-AzureDevVm.ps1
    

    Quando richiesto, specificare le informazioni seguenti:

    • ID sottoscrizione di Azure: ID sottoscrizione, disponibile nelle sottoscrizioni di Azure nel portale.
    • Nome gruppo di risorse: nome di un gruppo di risorse nuovo o esistente in Azure.
    • Località: scegliere un percorso di Azure in cui verrà creata la macchina virtuale. ad esempio "Stati Uniti occidentali 2" o "Europa settentrionale". Per altre informazioni, vedere Aree di Azure.
    • Nome utente: specificare un nome memorabile per l'account amministratore per la macchina virtuale.
    • Password: impostare una password per l'account amministratore per la macchina virtuale.

    Lo script viene eseguito per diversi minuti mentre vengono completati i passaggi seguenti:

    1. Lo script installa il modulo Az di Azure PowerShell.
    2. Richiede di accedere ad Azure.
    3. Verificare le informazioni per la creazione della VM. Premere y o INVIO per continuare.
    4. Crea il gruppo di risorse se non esiste.
    5. Distribuisce la macchina virtuale.
    6. Abilita Hyper-V nella VM.
    7. Installa il software necessario per lo sviluppo e clona il repository di esempi.
    8. Riavvia la VM.
    9. Crea un file RDP sul desktop per la connessione alla VM.

    Se viene richiesto di specificare il nome della VM per riavviarla, è possibile copiarlo dall'output dello script. L'output include anche il percorso del file RDP per la connessione alla VM.

Impostare la pianificazione di arresto automatico

Per ridurre i costi, la VM di sviluppo è stata creata con un arresto automatico pianificato per le 19:00 PST. Può essere necessario aggiornare questa impostazione in base alla località e alla propria pianificazione. Per aggiornare la pianificazione di arresto:

  1. Nella portale di Azure passare alla VM creata dallo script.

  2. Dal menu del riquadro sinistro, in Operazioni, scegliere Arresto automatico.

  3. Modificare i valori di Arresto pianificato e Fuso orario come si desidera, quindi selezionare Salva.

Connettersi alla VM di sviluppo

Dopo aver creato una VM, occorre completare l'installazione del software necessario per l'esercitazione.

  1. Fare doppio clic sul file RDP creato dallo script sul desktop.

  2. Verrà visualizzata una finestra di dialogo che informa che l'autore della connessione remota è sconosciuto. È accettabile, quindi selezionare Connetti.

  3. Specificare la password di amministratore fornita per creare la macchina virtuale e fare clic su OK.

  4. Verrà chiesto di accettare il certificato per la VM. Selezionare .

Installare le estensioni di Visual Studio Code

Dopo aver stabilito la connessione con il computer di sviluppo, aggiungere alcune estensioni utili a Visual Studio Code per semplificare l'esperienza di sviluppo.

  1. Connettersi alla macchina virtuale di sviluppo, aprire una finestra di PowerShell e passare alla directory C:\source\IoTEdgeAndMlSample\DevVM. Questa directory è stata creata dallo script che ha creato la macchina virtuale.

    cd C:\source\IoTEdgeAndMlSample\DevVM
    
  2. Eseguire il comando seguente per consentire l'esecuzione degli script. Quando richiesto, scegliere Sì per tutti.

    Set-ExecutionPolicy Bypass -Scope Process
    
  3. Eseguire lo script delle estensioni di Visual Studio Code

    .\Enable-CodeExtensions.ps1
    
  4. Lo script verrà eseguito per alcuni minuti e installerà le estensioni di VS Code:

    • Azure IoT Edge
    • Hub IoT di Azure
    • Python
    • C#
    • Docker
    • PowerShell

Configurare l'hub IoT e l'archiviazione

Questi passaggi vengono in genere eseguiti da sviluppatori cloud.

L'hub IoT di Azure è il fulcro di qualsiasi applicazione IoT, perché gestisce le comunicazioni sicure tra dispositivi IoT e il cloud. È il principale punto di coordinamento per il funzionamento della soluzione Machine Learning di IoT Edge.

  • L'hub IoT usa le route per indirizzare i dati in ingresso provenienti dai dispositivi IoT ad altri servizi downstream. Per inviare i dati del dispositivo ad Archiviazione di Azure, si sfrutteranno le route dell'hub IoT. In Archiviazione di Azure i dati dei dispositivi vengono utilizzati da Azure Machine Learning per eseguire il training del classificatore di vita utile rimanente.

  • Più avanti nell'esercitazione, l'hub IoT verrà usato per configurare e gestire il dispositivo Azure IoT Edge.

In questa sezione viene usato uno script per creare un hub IoT di Azure e un account di archiviazione di Azure. Quindi nel portale di Azure configurare una route che inoltri i dati ricevuti dall'hub a un contenitore di Archiviazione di Azure. Per completare questi passaggi, sono necessari circa 10 minuti.

  1. Connettersi alla macchina virtuale di sviluppo, aprire una finestra di PowerShell e passare alla directory IoTHub.

    cd C:\source\IoTEdgeAndMlSample\IoTHub
    
  2. Eseguire lo script di creazione. Usare gli stessi valori di ID sottoscrizione, località e gruppo di risorse specificati durante la creazione della VM di sviluppo.

    .\New-HubAndStorage.ps1 -SubscriptionId <subscription id> -Location <location> -ResourceGroupName <resource group>
    
    • Verrà visualizzata la richiesta di accedere ad Azure.
    • Lo script verifica le informazioni per la creazione dell'hub e dell'account di archiviazione. Premere y o INVIO per continuare.

Per eseguire lo script, sono necessari circa due minuti. Al termine, lo script genera il nome dell'hub IoT e dell'account di archiviazione.

Esaminare la route all'account di archiviazione nell'hub IoT

Durante la creazione dell'hub IoT, lo script eseguito nella sezione precedente ha creato anche un endpoint personalizzato e una route. Le route dell'hub IoT sono costituite da un'espressione di query e da un endpoint. Se un messaggio corrisponde all'espressione, i dati vengono inviati lungo la route all'endpoint associato. Gli endpoint possono essere hub eventi, code del bus di servizio e argomenti. In questo caso, l'endpoint è un contenitore BLOB in un account di archiviazione. Usare il portale di Azure per esaminare la route creata dallo script.

  1. Aprire il portale di Azure e passare al gruppo di risorse usato per questa esercitazione.

  2. Nell'elenco di risorse selezionare l'hub IoT creato dallo script. Avrà un nome che termina con caratteri casuali, ad esempio IotEdgeAndMlHub-jrujej6de6i7w.

  3. Nel menu del riquadro sinistro, in Impostazioni hub selezionare Routing messaggi.

  4. Nella pagina Routing messaggi selezionare la scheda Endpoint personalizzati.

  5. Espandere la sezione Archiviazione:

    Screenshot dell'archiviazione denominata turbofanDeviceStorage nell'elenco di endpoint personalizzati nel portale dell'hub I o T.

    In effetti turbofanDeviceStorage è incluso nell'elenco di endpoint personalizzati. Notare le caratteristiche seguenti sull'endpoint:

    • Punta al contenitore di archiviazione BLOB creato, denominato devicedata, come indicato da Nome contenitore.
    • Il formato Filename ha la parola "partition" nel nome. Questo formato è più pratico per le operazioni sui file che verranno eseguite con Azure Notebooks più avanti in questa esercitazione.
    • Lo Stato deve essere integro.
  6. Selezionare la scheda Route.

  7. Selezionare la route denominata turbofanDeviceDataToStorage.

  8. Nella pagina Dettagli route notare che l'endpoint della route è turbofanDeviceStorage.

    Screenshot che mostra i dettagli sulla route turbofanDeviceDataToStorage.

  9. Esaminare l'opzione Query di routing, che è impostata su true. Questa impostazione significa che tutti i messaggi di telemetria dei dispositivi corrisponderanno a questa route e pertanto verranno inviati all'endpoint turbofanDeviceStorage.

  10. Poiché non sono state apportate modifiche, chiudere questa pagina.

Pulire le risorse

Questa esercitazione fa parte di un set in cui ogni articolo si basa sul lavoro svolto nei precedenti. Prima di pulire le risorse attendere il completamento dell'esercitazione finale.

Passaggi successivi

In questo articolo è stato creato un hub IoT ed è stata configurata una route a un account di archiviazione di Azure. Successivamente verranno inviati i dati di un set di dispositivi simulati all'account di archiviazione tramite l'hub IoT. Più avanti nell'esercitazione, dopo aver configurato il dispositivo e i moduli IoT Edge, verranno riviste le route e verranno fornite altre informazioni sulla query di routing.

Continuare con l'articolo successivo per creare un dispositivo simulato da monitorare.