Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Applica a:
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.
Provare Azure IoT Edge in questa guida introduttiva distribuendo il codice in contenitori in un dispositivo Linux virtuale IoT Edge. IoT Edge consente di gestire il codice da remoto sui tuoi dispositivi così puoi inviare più dei tuoi carichi di lavoro alla periferia. Per questa guida introduttiva, usare una macchina virtuale Azure per il dispositivo IoT Edge. Consente di creare rapidamente un computer di test ed eliminarlo al termine.
In questa guida introduttiva si apprende come:
- Creare un IoT Hub.
- Registrare un dispositivo IoT Edge nell'hub IoT.
- Installare e avviare il runtime di IoT Edge in un dispositivo virtuale.
- Distribuire un modulo in modalità remota in un dispositivo IoT Edge.
Questa guida introduttiva illustra come creare una macchina virtuale Linux configurata come dispositivo IoT Edge. Distribuire quindi un modulo dal portale di Azure al dispositivo. Questo avvio rapido usa un modulo sensore simulato che genera dati relativi a temperatura, umidità e pressione. Le altre esercitazioni Azure IoT Edge si basano sul lavoro svolto qui distribuendo moduli aggiuntivi che analizzano i dati simulati per informazioni dettagliate aziendali.
Se non si ha una sottoscrizione Azure attiva, creare un account free prima di iniziare.
Prerequisiti
Configurare l'ambiente per il Azure CLI.
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Introduzione a Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, install il Azure CLI. Se si esegue in Windows o macOS, è consigliabile eseguire Azure CLI in un contenitore Docker. Per altre informazioni, vedere Come eseguire il Azure CLI in un contenitore Docker.
Se si usa un'installazione locale, accedere al Azure CLI usando il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Authenticate to Azure using Azure CLI.For other sign-in options, see Authenticate to Azure using Azure CLI.
Quando richiesto, installare l'estensione Azure CLI al primo uso. Per altre informazioni sulle estensioni, vedere Usare e gestire le estensioni con Azure CLI.
Esegui az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, avviare az upgrade.
Un gruppo di risorse per la gestione di tutte le risorse usate in questa guida introduttiva. Questo avvio rapido e le esercitazioni seguenti usano il nome del gruppo di risorse di esempio IoTEdgeResources.
az group create --name IoTEdgeResources --location westus2
Creare un IoT Hub
Iniziare l'avvio rapido creando un IoT Hub con l'Azure CLI.
Il livello gratuito di IoT Hub funziona per questo processo rapido di avvio. Se in passato è stato usato IoT Hub e si dispone già di un hub creato, è 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 il IoT Hub. La creazione di un IoT Hub 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à presente un IoT Hub gratuito, impostare lo SKU su S1. Ogni sottoscrizione può avere un solo hub IoT gratuito. Se viene visualizzato un errore che indica che il nome IoT Hub non è disponibile, significa che 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.
Creare un'identità del dispositivo per il dispositivo IoT Edge 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.
Poiché i dispositivi IoT Edge si comportano e vengono gestiti in modo diverso dai dispositivi IoT tipici, dichiarare questa identità come dispositivo IoT Edge usando il flag --edge-enabled.
Immettere il comando seguente in Azure Cloud Shell per creare un dispositivo denominato myEdgeDevice nell'hub.
az iot hub device-identity create --device-id myEdgeDevice --edge-enabled --hub-name <hub-name>Assicuratevi che la vostra Cloud Shell stia eseguendo la versione più recente dell'estensione azure-iot se visualizzate un errore relativo alle chiavi dei criteri iothubowner.
Controlla la stringa di connessione per il tuo dispositivo, che collega il dispositivo fisico alla sua identità in IoT Hub. Include il nome del IoT Hub, il nome del dispositivo e una chiave condivisa che autentica le connessioni tra di esse. Questa connection string verrà usata di nuovo nella sezione successiva per configurare il dispositivo IoT Edge.
az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name <hub-name>Ad esempio, il connection string dovrebbe essere simile a
HostName=contoso-hub.azure-devices.net;DeviceId=myEdgeDevice;SharedAccessKey=<DEVICE-SHARED-ACCESS-KEY>.
Configurare il dispositivo IoT Edge
Creare una macchina virtuale con il runtime di Azure IoT Edge.
Il runtime di IoT Edge viene distribuito in tutti i dispositivi IoT Edge e include tre componenti. Il daemon di sicurezza IoT Edge viene avviato ogni volta che un dispositivo IoT Edge si avvia e prepara il dispositivo avviando l'agente IoT Edge. L'agente IoT Edge facilita la distribuzione e il monitoraggio dei moduli nel dispositivo IoT Edge, incluso l'hub IoT Edge. L'hub IoT Edge gestisce le comunicazioni tra i moduli nel dispositivo IoT Edge e tra il dispositivo e IoT Hub.
Durante la configurazione di runtime, specificare una stringa di connessione del dispositivo. Questa stringa viene recuperata dal Azure CLI. Questa stringa associa il dispositivo fisico all'identità del dispositivo IoT Edge in Azure.
Distribuire il dispositivo IoT Edge
In questa sezione viene usato un modello di Azure Resource Manager per creare una nuova macchina virtuale e installare il runtime di IoT Edge. Se invece si vuole usare il proprio dispositivo Linux, è possibile seguire i passaggi di installazione descritti in Effettuare il provisioning di un singolo dispositivo Linux IoT Edge, quindi tornare a questa guida introduttiva.
Usare il pulsante Deploy per Azure o i comandi dell'interfaccia della riga di comando per creare un dispositivo IoT Edge basato sul modello predefinito iotedge-vm-deploy.
Eseguire la distribuzione usando il modello di IoT Edge Azure Resource Manager.
Per gli utenti bash o Cloud Shell, copiare il comando seguente in un editor di testo, sostituire il testo segnaposto con le informazioni, quindi copiare nella finestra bash o Cloud Shell:
az deployment group create \ --resource-group IoTEdgeResources \ --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" \ --parameters dnsLabelPrefix='<REPLACE_WITH_VM_NAME>' \ --parameters adminUsername='azureUser' \ --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name <REPLACE_WITH_HUB_NAME> -o tsv) \ --parameters authenticationType='password' \ --parameters adminPasswordOrKey="<REPLACE_WITH_PASSWORD>"Per gli utenti di PowerShell, copiare il comando seguente nella finestra di PowerShell, quindi sostituire il testo segnaposto con le informazioni correnti:
az deployment group create ` --resource-group IoTEdgeResources ` --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" ` --parameters dnsLabelPrefix='<REPLACE_WITH_VM_NAME>' ` --parameters adminUsername='azureUser' ` --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name <REPLACE_WITH_HUB_NAME> -o tsv) ` --parameters authenticationType='password' ` --parameters adminPasswordOrKey="<REPLACE_WITH_PASSWORD>"
Questo modello accetta i parametri seguenti:
| Parametro | Descrizione |
|---|---|
| gruppo di risorse | Il gruppo di risorse in cui vengono create le risorse. Usare il gruppo di risorse IoTEdgeResources predefinito usato in questo articolo o fornire il nome di un gruppo di risorse esistente nella sottoscrizione in uso. |
| template-uri | Puntatore al modello di Resource Manager in uso. |
| dnsLabelPrefix | Una stringa usata per creare il nome host della macchina virtuale. Sostituire il testo del segnaposto con un nome per la macchina virtuale. |
| adminUsername | Nome utente per l'account amministratore della macchina virtuale. Usare il nome utente azureUser di esempio o specificare un nuovo nome utente. |
| deviceConnectionString | La stringa di connessione dell'identità del dispositivo in IoT Hub, che viene utilizzata per configurare il runtime di IoT Edge nella macchina virtuale. Il comando della CLI all'interno di questo parametro recupera la stringa di connessione per te. Sostituire il testo segnaposto con il nome dell'hub IoT. |
| authenticationType | Metodo di autenticazione per l'account amministratore. In questa guida di avvio rapido viene usata l'autenticazione della password, ma è anche possibile impostare questo parametro su sshPublicKey. |
| adminPasswordOrKey | Password o valore della chiave pubblica SSH per l'account amministratore. Sostituire il testo segnaposto con una password sicura. La password deve avere una lunghezza minima di 12 caratteri e contenere tre dei quattro elementi seguenti: caratteri minuscoli, caratteri maiuscoli, numeri e caratteri speciali. |
Al termine della distribuzione, l'output in formato JSON nell'interfaccia della riga di comando contiene le informazioni SSH per connettersi alla macchina virtuale. Copiare il valore della voce public SSH della sezione output. Ad esempio, il comando SSH dovrebbe essere simile a ssh azureUser@edge-vm.westus2.cloudapp.azure.com.
Visualizzare lo stato di runtime IoT Edge
Il resto dei comandi di questa guida introduttiva avviene sul dispositivo IoT Edge stesso, in modo da poter vedere cosa accade nel dispositivo. Se si usa una macchina virtuale, connettersi ad essa usando il nome utente amministratore configurato e il nome DNS restituito dal comando di distribuzione. È anche possibile trovare il nome DNS nella pagina di panoramica della macchina virtuale nel portale di Azure. Usare il comando seguente per connettersi alla macchina virtuale. Sostituire <admin-username> e <DNS-name> con valori personalizzati.
ssh <admin-username>@<DNS-name>
Dopo la connessione alla macchina virtuale, verificare che il runtime sia stato installato e configurato correttamente nel dispositivo IoT Edge.
Controllare se IoT Edge è in esecuzione. Il comando seguente restituisce lo stato Ok se IoT Edge è in esecuzione o fornisce errori del servizio.
sudo iotedge system statusSuggerimento
Per eseguire comandi
iotedgesono necessari privilegi elevati. Dopo aver disconnesso il computer e aver eseguito nuovamente l'accesso alla prima volta dopo l'installazione del runtime di IoT Edge, le autorizzazioni vengono aggiornate automaticamente. Fino ad allora, usaresudodavanti ai comandi.Se è necessario risolvere problemi del servizio, recuperare i log di servizio.
sudo iotedge system logsVisualizzare tutti i moduli in esecuzione nel dispositivo IoT Edge. Poiché il servizio è appena stato avviato per la prima volta, dovrebbe essere visualizzato solo il modulo edgeAgent in esecuzione. Il modulo edgeAgent viene eseguito per impostazione predefinita e permette di installare e avviare tutti i moduli aggiuntivi distribuiti nel dispositivo.
sudo iotedge list
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 i dati di telemetria del dispositivo a IoT Hub.
Una funzionalità chiave 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 viene distribuito 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.
Usare questi passaggi per distribuire il primo modulo.
Accedere al portale Azure e passare al IoT Hub.
Dal menu a sinistra, in Device Management selezionare Dispositivi.
Selezionare l'ID dispositivo del dispositivo di destinazione IoT Edge dall'elenco.
Quando si crea un nuovo dispositivo IoT Edge, viene visualizzato il codice di stato
417 -- The device's deployment configuration is not setnel portale di Azure. Questo stato è normale e significa che il dispositivo è pronto per ricevere una distribuzione del modulo.Sulla barra superiore selezionare Imposta moduli.
Selezionare i moduli da eseguire nel dispositivo. È possibile scegliere tra i moduli creati manualmente o le immagini in un registro contenitori. In questo avvio rapido si distribuisce un modulo dal registro contenitori Microsoft.
Nella sezione IoT Edge modules selezionare Add quindi scegliere IoT Edge Module.
Aggiornare le impostazioni del modulo seguenti:
Impostazione valore Nome modulo IoT SimulatedTemperatureSensorURI immagine mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:latestCriterio di riavvio sempre Stato desiderato in esecuzione Selezionare Avanti: Route per continuare a configurare le route.
Aggiungere una route che invia tutti i messaggi dal modulo temperatura simulata a IoT Hub.
Impostazione valore Nome SimulatedTemperatureSensorToIoTHubvalore FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstreamSelezionare Avanti: Revisiona e crea.
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 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. 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 aggiornare la pagina.
In caso di problemi nella distribuzione dei moduli, consultare Risoluzione dei problemi dei dispositivi IoT Edge dal portale di Azure.
Visualizzare i dati generati
In questa guida introduttiva si crea un dispositivo IoT Edge e si installa il runtime IoT Edge. Si usa quindi il portale di Azure per distribuire un modulo IoT Edge da eseguire nel dispositivo senza apportare modifiche al dispositivo stesso.
In questo caso il modulo di cui è stato eseguito il push crea i dati dell'ambiente di esempio che potranno essere usati successivamente per il test. Il sensore simulato monitora un macchinario e l'ambiente intorno al macchinario. Ad esempio, questo sensore può trovarsi in una sala server, nel piano di una fabbrica o in una turbina eolica. Il messaggio include la temperatura e l'umidità dell'ambiente, la temperatura e la pressione dell'apparecchiatura e un timestamp. Le esercitazioni IoT Edge usano i dati creati da questo modulo come dati di test per l'analisi.
Aprire il prompt dei comandi nel dispositivo IoT Edge oppure usare la connessione SSH da Azure CLI. Verificare che il modulo distribuito dal cloud sia in esecuzione nel dispositivo IoT Edge:
sudo iotedge list
Visualizzare i messaggi inviati dal modulo sensore temperatura:
sudo iotedge logs SimulatedTemperatureSensor -f
Suggerimento
I comandi di IoT Edge fanno distinzione tra maiuscole e minuscole quando si fa riferimento ai nomi dei moduli.
Pulire le risorse
Per continuare con le esercitazioni IoT Edge, usare il dispositivo registrato e configurato in questa guida introduttiva. In caso contrario, eliminare le risorse 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. Controllare attentamente il contenuto del gruppo di risorse per assicurarsi che non siano presenti elementi da mantenere. Se non si vuole eliminare l'intero gruppo, è possibile eliminare le singole risorse.
Importante
L'eliminazione di un gruppo di risorse è irreversibile.
Eliminare il gruppo IoTEdgeResources. L'eliminazione di un gruppo di risorse potrebbe richiedere alcuni minuti.
az group delete --name IoTEdgeResources --yes
Verificare che il gruppo di risorse venga eliminato visualizzando l'elenco dei gruppi di risorse.
az group list
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. Ora si usa un dispositivo di test che genera dati non elaborati relativi all'ambiente.
Nel prossimo tutorial, imparerai come monitorare l'attività e lo stato di salute del tuo dispositivo dal portale di Azure.