Condividi tramite


Avvio rapido: Distribuire il primo modulo IoT Edge in un dispositivo Linux virtuale

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 testare Azure IoT Edge in questa guida di avvio rapido, distribuire il codice in contenitori in un dispositivo IoT Edge Linux virtuale. IoT Edge consente di gestire in remoto il codice nei dispositivi, in modo da poter inviare più carichi di lavoro ai dispositivi perimetrali. Per questa guida di avvio rapido è consigliabile usare per il dispositivo IoT Edge una macchina virtuale di Azure che consenta di creare rapidamente un computer di test, e quindi eliminarlo al termine dell'operazione.

In questa guida introduttiva si apprende come:

  • Creare un hub IoT.
  • Registrare un dispositivo IoT Edge nell'hub IoT.
  • Installare e avviare il runtime IoT Edge in un dispositivo virtuale.
  • Distribuire in remoto un modulo in un dispositivo IoT Edge.

Diagramma di - Architettura per un avvio rapido per dispositivi cloud

Questa guida di avvio rapido illustra come creare una macchina virtuale Linux configurata per l'uso come dispositivo IoT Edge. Verrà quindi distribuito un modulo dal portale di Azure nel dispositivo. Il modulo utilizzato in questa introduzione rapida è un sensore simulato che genera dati di temperatura, umidità e pressione. Le altre esercitazioni su Azure IoT Edge si basano sulle procedure eseguite qui tramite la distribuzione di moduli aggiuntivi che analizzano dati simulati per ottenere informazioni aziendali dettagliate.

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.

Risorse cloud:

  • Un gruppo di risorse per la gestione di tutte le risorse usate in questa guida introduttiva. In questa guida di avvio rapido e nelle esercitazioni successive verrà usato il nome del gruppo di risorse di esempio IoTEdgeResources.

    az group create --name IoTEdgeResources --location westus2
    

Creare un hub IoT

Per iniziare, creare un hub IoT con l'interfaccia della riga di comando di Azure.

diagramma : creare un hub IoT nel cloud

Il livello gratuito di IoT Hub è adatto per questo quickstart. 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. Ogni sottoscrizione può avere un solo hub IoT gratuito. 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 : registrare un dispositivo con un'identità dell'hub IoT

Creare un'identità del dispositivo IoT Edge affinché il dispositivo 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.

Poiché i dispositivi IoT Edge si comportano e possono essere gestiti in modo diverso rispetto ai dispositivi IoT tipici, indicare con un flag --edge-enabled che l'identità si riferisce 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 si verifica un errore relativo alle chiavi dei criteri iothubowner, accertarsi che Cloud Shell stia eseguendo 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 quindi una chiave condivisa che autentica le connessioni tra i due. Si farà riferimento a questa stringa di connessione nella sezione successiva quando verrà configurato il dispositivo IoT Edge.

    az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name {hub_name}
    

    Visualizza la stringa di connessione dall'output del CLI

Configurare il dispositivo IoT Edge

Creare una macchina virtuale con il runtime Azure IoT Edge.

diagramma : avviare il runtime nel dispositivo

Il runtime IoT Edge viene distribuito in tutti i dispositivi IoT Edge. È costituito da tre componenti. Il daemon di sicurezza IoT Edge si avvia a ogni avvio di un dispositivo IoT Edge ed esegue il bootstrap del dispositivo avviando l'agente IoT Edge. L'agente IoT Edge semplifica la distribuzione e il monitoraggio di moduli nel dispositivo IoT Edge, tra cui l'hub di IoT Edge. L'hub IoT Edge gestisce le comunicazioni tra moduli nel dispositivo IoT Edge e tra il dispositivo e l'hub IoT.

Durante la configurazione del runtime, si immette una stringa di connessione del dispositivo. Si tratta della stringa recuperata tramite l'interfaccia della riga di comando di Azure. La stringa associa il dispositivo fisico all'identità del dispositivo IoT Edge in Azure.

Distribuire il dispositivo IoT Edge

In questa sezione verrà usato un modello di Azure Resource Manager per creare una nuova macchina virtuale e installare il runtime IoT Edge al suo interno. Se invece si vuole usare il proprio dispositivo Linux, è possibile seguire i passaggi di installazione in Effettuare manualmente il provisioning di un singolo dispositivo Linux IoT Edge, quindi tornare a questa guida introduttiva.

Utilizza il seguente comando CLI per creare il tuo dispositivo IoT Edge basato sul modello iotedge-vm-deploy predefinito.

  • Per gli utenti di Bash o Cloud Shell, copiare il comando seguente in un editor di testo, sostituire il testo segnaposto con le informazioni correnti e quindi copiare il testo nella finestra di Bash o Cloud Shell:

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.1/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 proprie informazioni:

    az deployment group create `
    --resource-group IoTEdgeResources `
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.1/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 Gruppo di risorse in cui verranno create le risorse. Usare il gruppo di risorse predefinito IoTEdgeResources che abbiamo usato per tutto l'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 Stringa che verrà 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 Stringa di connessione dell'identità del dispositivo nell'hub IoT, che verrà usata per configurare il runtime IoT Edge nella macchina virtuale. Il comando CLI all'interno di questo parametro acquisisce la stringa di connessione per te. Sostituire il testo segnaposto con il nome dell'hub IoT.
tipo di autenticazione 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 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, nell'interfaccia della riga di comando verrà restituito l'output in formato JSON che contiene le informazioni SSH per connettersi alla macchina virtuale. Copiare il valore della voce SSH pubblica della sezione output:

Recuperare il valore SSH pubblico dall'output di

Visualizzare lo stato del runtime IoT Edge

I restanti comandi di questa guida introduttiva vengono eseguiti nel dispositivo IoT Edge stesso ed è pertanto possibile verificare le operazioni effettuate 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 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}

Una volta stabilita la connessione alla macchina virtuale, verificare che il runtime sia stato installato e configurato correttamente nel dispositivo IoT Edge.

  1. Verificare che il daemon di sicurezza di IoT Edge sia in esecuzione come servizio di sistema.

    sudo systemctl status iotedge
    

    Vedere il daemon IoT Edge in esecuzione come servizio di sistema

    Suggerimento

    Per eseguire comandi iotedge sono necessari privilegi elevati. Quando ci si disconnette dal computer e si accede di nuovo per la prima volta dopo l'installazione del runtime IoT Edge, le autorizzazioni vengono aggiornate automaticamente. Fino ad allora, usare sudo davanti ai comandi.

  2. Se è necessario risolvere problemi del servizio, recuperare i log di servizio.

    journalctl -u iotedge
    
  3. Visualizzare tutti i moduli in esecuzione nel dispositivo IoT Edge. Poiché il servizio è stato avviato per la prima volta, verrà 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
    

    Visualizzare un modulo nel dispositivo

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 invierà dati di telemetria all'hub IoT.

diagramma : distribuire il modulo dal cloud al dispositivo

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 questi passaggi per avviare la procedura guidata Imposta Moduli per distribuire il tuo primo modulo da Azure Marketplace.

  1. Accedere al portale di Azure e passare all'hub IoT.

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

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

    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.

moduli

Il primo passaggio della procedura guidata consiste nel scegliere i moduli da eseguire nel dispositivo.

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

Screenshot che mostra il menu a discesa

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.

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

Screenshot che mostra il passaggio successivo dopo l'aggiunta del modulo.

Percorsi

Una route denominata 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.

Screenshot che mostra la rimozione della route predefinita e quindi il passaggio al passaggio successivo.

Selezionare Successivo: rivedi e crea.

Rivedere e creare

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.

Nota

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.

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.

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. Questo sensore può trovarsi ad esempio in una sala server, in una fabbrica o su una turbina eolica. Il messaggio include la temperatura e l'umidità dell'ambiente, la temperatura e la pressione della macchina e un timestamp. Le esercitazioni di IoT Edge usano i dati creati da questo modulo come dati di test per le analisi.

Aprire di nuovo il prompt dei comandi nel dispositivo IoT Edge o usare la connessione SSH dall'interfaccia della riga di comando di Azure. Verificare che il modulo distribuito dal cloud sia in esecuzione nel dispositivo IoT Edge:

sudo iotedge list

Visualizzare tre moduli nel dispositivo

Visualizzare i messaggi inviati dal modulo del sensore temperatura:

sudo iotedge logs SimulatedTemperatureSensor -f

Suggerimento

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

Visualizzare i dati dal modulo

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

Pulire le risorse

Se si vuole continuare con le esercitazioni su IoT Edge, è possibile usare il dispositivo registrato e configurato in questa guida introduttiva. 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. Controllare accuratamente i contenuti del gruppo di risorse per assicurarsi che non vi sia nulla che si desidera conservare. Se non si vuole eliminare l'intero gruppo, è possibile eliminare le singole risorse.

Importante

L'eliminazione di un gruppo di risorse è irreversibile.

Rimuovere il gruppo IoTEdgeResources. L'eliminazione di un gruppo di risorse potrebbe richiedere alcuni minuti.

az group delete --name IoTEdgeResources --yes

Per confermare la rimozione del gruppo di risorse, visualizzare 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 di 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.

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