Esercitazione: Configurare un ambiente per l'apprendimento automatico in IoT Edge
Si applica a: 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.
Questo articolo illustra come preparare l'ambiente per lo sviluppo e la distribuzione. Innanzitutto, configurare un computer di sviluppo con tutti gli strumenti necessari. Creare quindi le risorse cloud necessarie in Azure.
In questa sezione dell'esercitazione si apprenderà come:
- Configurare una macchina virtuale per lo sviluppo.
- Configurare un hub IoT e un'archiviazione cloud per l'ambiente di sviluppo da usare.
Questo articolo fa parte di una serie di esercitazioni sull'uso di Azure Machine Learning in IoT Edge. Ogni articolo della serie si basa sul lavoro dell'articolo precedente. Se sei arrivato direttamente a questo articolo, visita il primo articolo della serie.
Questo passaggio viene in genere eseguito da uno sviluppatore cloud. Alcuni software possono anche essere utili per un data scientist.
È stato creato uno script di PowerShell che crea una macchina virtuale di Azure con molti dei prerequisiti già configurati. La macchina virtuale creata deve essere in grado di gestire virtualizzazione annidata, motivo per cui è stata scelta una dimensione del computer Standard_D8s_v3.
La macchina virtuale di sviluppo verrà configurata con:
- Windows 10
- cioccolatoso
- Docker Desktop per Windows
- Git per Windows
- Git Credential Manager per Windows
- .NET Core SDK
- Python 3
- Visual Studio Code
- Azure PowerShell
- estensioni di VS Code
La macchina virtuale per sviluppatori non è strettamente necessaria. Tutti gli strumenti di sviluppo possono essere eseguiti in un computer locale. Consigliamo vivamente di usare la macchina virtuale per garantire la parità di condizioni.
La creazione e la configurazione della macchina virtuale richiedono circa 30 minuti.
Clona o scarica il repository di esempio di Machine Learning e di IoT Edge sul tuo computer locale.
Aprire PowerShell come amministratore e passare alla directory \IoTEdgeAndMlSample\DevVM che si trova nella directory radice in cui è stato scaricato il codice. Faremo riferimento alla directory radice della fonte 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.
Eseguire il comando seguente per consentire l'esecuzione di script. Scegliere Sì a tutti quando richiesto.
Set-ExecutionPolicy Bypass -Scope Process
Eseguire Create-AzureDevVM.ps1.
.\Create-AzureDevVm.ps1
Quando richiesto, specificare le informazioni seguenti:
- ID della sottoscrizione Azure: ID della sottoscrizione, disponibile in Sottoscrizioni di Azure nel portale di Azure.
- nome gruppo di risorse: nome di un gruppo di risorse nuovo o esistente in Azure.
- Posizione: scegliere una posizione di Azure in cui verrà creata la macchina virtuale. Ad esempio, "Stati Uniti occidentali 2" o "Europa settentrionale". Per altre informazioni, vedere località 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 alcuni minuti durante l'esecuzione dei passaggi seguenti:
- Installa il modulo Az di Azure PowerShell .
- Chiede di accedere ad Azure.
- Conferma le informazioni per la creazione della macchina virtuale. Premere y o [INVIO] per continuare.
- Crea il gruppo di risorse, se non esiste.
- Distribuisce la macchina virtuale.
- Abilita Hyper-V nella macchina virtuale.
- Installa il software necessario per lo sviluppo e clonare il repository di esempio.
- Riavvia la macchina virtuale.
- Crea un file RDP sul desktop per la connessione alla macchina virtuale.
Se viene richiesto il nome della macchina virtuale per riavviarlo, è possibile copiarne il nome dall'output dello script. L'output mostra anche il percorso del file RDP per la connessione alla macchina virtuale.
Per ridurre i costi, la macchina virtuale di sviluppo è stata creata con una pianificazione di arresto automatico impostata su 1900 PST. Potrebbe essere necessario aggiornare questa impostazione in base alla posizione e alla pianificazione. Per aggiornare la pianificazione dello spegnimento:
Nel portale di Azure passare alla macchina virtuale creata dallo script.
Nel menu del riquadro a sinistra, in Operazioni, selezionare Arresto Automatico.
Imposta il arresto pianificato e regola il fuso orario come desiderato e seleziona Salva.
Ora che è stata creata una macchina virtuale, è necessario completare l'installazione del software necessario per completare l'esercitazione.
Fare doppio clic sul file RDP creato dallo script sul desktop.
Verrà visualizzata una finestra di dialogo che indica che l'autore della connessione remota è sconosciuto. Questa opzione è accettabile, perciò seleziona Connetti.
Specificare la password dell'amministratore specificata per creare la macchina virtuale e fare clic su OK.
Verrà richiesto di accettare il certificato per la macchina virtuale. Selezionare Sì.
Dopo aver stabilito la connessione al computer di sviluppo, aggiungere alcune estensioni utili a Visual Studio Code per semplificare l'esperienza di sviluppo.
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
Eseguire il comando seguente per consentire l'esecuzione di script. Scegliere Sì a tutti quando richiesto.
Set-ExecutionPolicy Bypass -Scope Process
Eseguire lo script delle estensioni di Visual Studio Code.
.\Enable-CodeExtensions.ps1
Lo script verrà eseguito per alcuni minuti durante l'installazione delle estensioni di Visual Studio Code:
- Azure IoT Edge
- Hub IoT di Azure
- Pitone
- C#
- Docker
- PowerShell
Questi passaggi vengono in genere eseguiti da uno sviluppatore cloud.
L'hub IoT di Azure è il cuore di qualsiasi applicazione IoT perché gestisce la comunicazione sicura tra i dispositivi IoT e il cloud. È il punto di coordinamento principale per il funzionamento della soluzione di Machine Learning IoT Edge.
L'hub IoT usa route per indirizzare i dati in ingresso dai dispositivi IoT ad altri servizi downstream. I percorsi dell'hub IoT verranno sfruttati per inviare i dati dei dispositivi all'Azure Storage. In Archiviazione di Azure, i dati del dispositivo vengono usati da Azure Machine Learning per addestrare il classificatore di durata utile rimanente (RUL).
Più avanti nell'esercitazione si userà l'hub IoT per configurare e gestire il dispositivo Azure IoT Edge.
In questa sezione si usa uno script per creare un hub IoT di Azure e un account di archiviazione di Azure. Nel portale di Azure viene quindi configurata una route che inoltra i dati ricevuti dall'hub a un contenitore di Archiviazione di Azure. Il completamento di questi passaggi richiede circa 10 minuti.
Connettersi alla macchina virtuale di sviluppo, aprire una finestra di PowerShell e passare alla directory IoTHub.
cd C:\source\IoTEdgeAndMlSample\IoTHub
Eseguire lo script di creazione. Usare gli stessi valori per l'ID sottoscrizione, la posizione e il gruppo di risorse usati durante la creazione della macchina virtuale di sviluppo.
.\New-HubAndStorage.ps1 -SubscriptionId <subscription id> -Location <location> -ResourceGroupName <resource group>
- Verrà richiesto di accedere ad Azure.
- Lo script conferma le informazioni per la creazione del tuo account Hub e di archiviazione. Premere o Invio per continuare.
L'esecuzione dello script richiede circa due minuti. Al termine, lo script restituisce il nome dell'hub IoT e dell'account di archiviazione.
Come parte della 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. Si userà il portale di Azure per esaminare la route creata dallo script.
Aprire il portale di Azure e passare al gruppo di risorse usato per questa esercitazione.
Nell'elenco delle risorse selezionare l'hub IoT creato dallo script. Avrà un nome che termina con caratteri casuali, ad esempio
IotEdgeAndMlHub-jrujej6de6i7w
.Nel menu a sinistra, sotto Impostazioni hub, selezionare Instradamento messaggi.
Nella pagina routing dei messaggi, selezionare la scheda endpoint personalizzati.
Espandere la sezione archiviazione:
Noi vediamo turbofanDeviceStorage nell'elenco degli endpoint personalizzati. Si notino le caratteristiche seguenti su questo endpoint:
- Punta al contenitore di archiviazione BLOB che hai creato denominato
devicedata
come indicato dal nome del contenitore . - Il formato nome file contiene 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.
- Il relativo Stato dovrebbe essere integro.
- Punta al contenitore di archiviazione BLOB che hai creato denominato
Seleziona la scheda Percorsi.
Selezionare il percorso denominato turbofanDeviceDataToStorage.
Sulla pagina dei dettagli di Route , notare che l'endpoint del percorso è l'endpoint turbofanDeviceStorage.
Esamina la query di routing , che è impostata su vero. Questa impostazione indica che tutti i messaggi di telemetria del dispositivo corrisponderanno a questa route; e quindi tutti i messaggi verranno inviati all'endpoint turbofanDeviceStorage.
Poiché non sono state apportate modifiche, chiudere questa pagina.
Questa esercitazione fa parte di un set in cui ogni articolo si basa sul lavoro svolto nei precedenti. Attendere di pulire tutte le risorse fino a quando non si completa l'esercitazione finale.
In questo articolo è stato creato un hub IoT e stato configurato un percorso a un account di archiviazione di Azure. Successivamente, i dati verranno inviati da un set di dispositivi simulati tramite l'hub IoT nell'account di archiviazione. Più avanti nell'esercitazione, dopo aver configurato il dispositivo e i moduli IoT Edge, rivisiteremo le route e esamineremo più nel dettaglio la query di routing.
Continuare con l'articolo successivo per creare un dispositivo simulato da monitorare.