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.
Si 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.
Questo articolo fornisce istruzioni dettagliate per la registrazione e il provisioning di un dispositivo IoT Edge per Linux su un dispositivo Windows.
Ogni dispositivo che si connette a un hub IoT ha un ID dispositivo che tiene traccia delle comunicazioni da cloud a dispositivo o da dispositivo a cloud. Configurare un dispositivo con le relative informazioni di connessione, inclusi il nome host IoT hub, l'ID dispositivo e le informazioni usate dal dispositivo per l'autenticazione per IoT Hub.
Questo articolo illustra il provisioning manuale, in cui si connette un singolo dispositivo all'hub IoT. Per il provisioning manuale, è possibile usare una delle due opzioni per autenticare i dispositivi IoT Edge:
Symmetric keys: quando si crea una nuova identità del dispositivo in IoT Hub, il servizio crea due chiavi. Posizionare una delle chiavi sul dispositivo e presenta la chiave all'IoT Hub durante l'autenticazione.
Questo metodo di autenticazione consente di iniziare più rapidamente, ma non è sicuro.
X.509 autofirmato: creare due certificati di identità X.509 e inserirli nel dispositivo. Quando si crea una nuova identità del dispositivo in IoT Hub, fornire le impronte digitali da entrambi i certificati. Quando il dispositivo esegue l'autenticazione per IoT Hub, presenta un certificato e IoT Hub verifica che il certificato corrisponda all'identificazione personale.
Questo metodo di autenticazione è più sicuro ed è consigliato per gli scenari di produzione.
Questo articolo illustra l'uso dei certificati X.509 come metodo di autenticazione. Per usare le chiavi simmetriche, vedere Creare ed effettuare il provisioning di un dispositivo IoT Edge per Linux su Windows usando chiavi simmetriche .
Nota
Se è necessario configurare molti dispositivi e non si vuole eseguire manualmente il provisioning di ognuno di essi, usare uno degli articoli seguenti per informazioni sul funzionamento di IoT Edge con il servizio device provisioning IoT Hub:
Prerequisiti
Questo articolo illustra come registrare il dispositivo IoT Edge e installare IoT Edge per Linux in Windows. Queste attività hanno prerequisiti diversi e usano utilità diverse. Verificare di soddisfare tutti i prerequisiti prima di continuare.
Strumenti di gestione dei dispositivi
È possibile usare il portale di Azure, Visual Studio Code o il Azure CLI per registrare il dispositivo. Ogni utilità ha i propri prerequisiti o potrebbe essere necessario installare:
Un hub OT gratuito o standard nella sottoscrizione Azure.
Requisiti dei dispositivi
Un dispositivo Windows con i requisiti minimi seguenti:
Requisiti di sistema
- Windows 101/11 (Pro, Enterprise, IoT Enterprise)
- Windows Server 20191/2022
1 Windows 10 e Windows Server 2019, build minima 17763, con tutti gli aggiornamenti cumulativi correnti installati.
Requisiti hardware
- Memoria disponibile minima: 1 GB
- Spazio libero minimo su disco: 10 GB
Supporto virtualizzazione
- In Windows 10 abilitare Hyper-V. Per altre informazioni, vedere Installare Hyper-V.
- In Windows Server installare il ruolo Hyper-V e creare un commutatore di rete predefinito. Per ulteriori informazioni, vedere Nested virtualization for Azure IoT Edge for Linux on Windows.
- In una macchina virtuale, configurare la virtualizzazione annidata. Per ulteriori informazioni, vedere Nested virtualization for Azure IoT Edge for Linux on Windows.
Supporto per la rete
- Windows Server non include un'opzione predefinita. Prima di poter distribuire EFLOW in un dispositivo Windows Server, è necessario creare un commutatore virtuale. Per ulteriori informazioni, vedere creazione di switch virtuali in Azure IoT Edge per Linux su Windows.
- Windows versioni desktop includono un commutatore predefinito che è possibile usare per l'installazione di EFLOW. Se necessario, è possibile creare un commutatore virtuale personalizzato.
Suggerimento
Se si vogliono usare moduli Linux accelerati dalla GPU nella distribuzione di Azure IoT Edge per Linux su Windows, prendere in considerazione diverse opzioni di configurazione.
È necessario installare i driver corretti a seconda dell'architettura GPU e potrebbe essere necessario accedere a una compilazione Windows Insider Program. Per determinare le vostre esigenze di configurazione e soddisfare questi prerequisiti, consultare l'accelerazione della GPU per Azure IoT Edge su Linux per Windows.
Assicurarsi di soddisfare i prerequisiti per l'accelerazione GPU. È necessario riavviare il processo di installazione se si decide di volere l'accelerazione GPU durante l'installazione.
Strumenti per sviluppatori
Preparare il dispositivo di destinazione per l'installazione di Azure IoT Edge per Linux in Windows e la distribuzione della macchina virtuale Linux:
Impostare il criterio di esecuzione nel dispositivo di destinazione su
AllSigned. È possibile controllare i criteri di esecuzione correnti in un prompt di PowerShell con privilegi elevati usando il comando seguente:Get-ExecutionPolicy -ListSe i criteri di esecuzione per
local machinenon sonoAllSigned, impostare i criteri di esecuzione usando:Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
Per altre informazioni sul modulo Azure IoT Edge per Linux in Windows PowerShell, vedere le informazioni di riferimento sulle funzioni PowerShell.
Generare certificati di identità del dispositivo
Il provisioning manuale con certificati X.509 richiede IoT Edge versione 1.0.10 o successiva.
Quando si effettua il provisioning di un dispositivo IoT Edge con certificati X.509, si usa un certificato di identità device. Questo certificato viene usato solo per il provisioning di un dispositivo IoT Edge e l'autenticazione del dispositivo con Azure IoT Hub. Si tratta di un certificato foglia che non firma altri certificati. Il certificato di identità del dispositivo è separato dai certificati dell'autorità di certificazione (CA) che il dispositivo IoT Edge presenta ai moduli o ai dispositivi downstream per la verifica.
Per l'autenticazione del certificato X.509, le informazioni di autenticazione di ogni dispositivo vengono fornite sotto forma di identificazioni personali ottenute dai certificati di identità del dispositivo. Queste identificazioni personali vengono fornite a IoT Hub al momento della registrazione del dispositivo in modo che il servizio possa riconoscere il dispositivo quando si connette.
Per altre informazioni sull'uso dei certificati DELLA CA nei dispositivi IoT Edge, vedere Informazioni Azure IoT Edge sull'uso dei certificati.
Per il provisioning manuale con X.509 sono necessari i file seguenti:
Due certificati di identità del dispositivo con i certificati di chiave privata corrispondenti nei formati .cer o .pem. Sono necessari due certificati di identità del dispositivo per la rotazione dei certificati. Una procedura consigliata consiste nel preparare due diversi certificati di identità del dispositivo con date di scadenza differenti. Se un certificato scade, l'altro è ancora valido e consente di ruotare il certificato scaduto.
Un set di file di certificato e di chiave viene fornito al runtime di IoT Edge. Quando si creano certificati di identità del dispositivo, impostare il nome comune (CN) del certificato sull'ID da assegnare al dispositivo nell'hub IoT.
Impronte digitali ricavate da entrambi i certificati di identità del dispositivo. IoT Hub richiede due identificazioni personali durante la registrazione di un dispositivo IoT Edge. È possibile utilizzare un solo certificato per la registrazione. Per usare un singolo certificato, impostare la stessa impronta digitale del certificato per entrambe le impronte digitali primaria e secondaria durante la registrazione del dispositivo.
I valori di impronta digitale sono 40 caratteri esadecimali per gli hash SHA-1 o 64 caratteri esadecimali per gli hash SHA-256. Entrambe le impronte digitali vengono fornite a IoT Hub al momento della registrazione del dispositivo.
Un modo per recuperare l'impronta digitale da un certificato è utilizzare il seguente comando openssl:
openssl x509 -in <certificate filename>.pem -text -fingerprintL'impronta digitale è inclusa nell'output di questo comando. Ad esempio:
SHA1 Fingerprint=D2:68:D9:04:9F:1A:4D:6A:FD:84:77:68:7B:C6:33:C0:32:37:51:12
Se non sono disponibili certificati, è possibile Creare i certificati demo per testare IoT Edge funzionalità del dispositivo. Seguire le istruzioni riportate in questo articolo per configurare gli script di creazione del certificato, creare un certificato CA radice e creare un certificato di identità del dispositivo IoT Edge. Per i test, è possibile creare un singolo certificato di identità del dispositivo e utilizzare la stessa impronta digitale per i valori di impronta digitale primaria e secondaria durante la registrazione del dispositivo in IoT Hub.
Registrare il dispositivo
È possibile usare il portale Azure, Visual Studio Code o Azure CLI per registrare il dispositivo, a seconda delle preferenze.
Nell'hub IoT nel tuo portale di Azure, i dispositivi IoT Edge vengono creati e gestiti separatamente dai dispositivi IoT non abilitati Edge.
Accedere al portale Azure e passare all'hub IoT.
Nel menu delle risorse espandere il gruppo Gestione dispositivi e selezionare Dispositivi, quindi selezionare Aggiungi dispositivo dalla barra dei comandi.
Nella pagina Crea un dispositivo specificare le informazioni seguenti:
- Creare un ID dispositivo descrittivo. ** Annota questo ID dispositivo, perché lo userai più tardi.
- Selezionare la casella di controllo IoT Edge Device.
- Selezionare X.509 autofirmato come tipo di autenticazione.
- Fornire le impronte digitali del certificato di identità primaria e secondaria. I valori di impronta digitale sono 40 caratteri esadecimali per gli hash SHA-1 o 64 caratteri esadecimali per gli hash SHA-256. Il portale di Azure supporta solo valori esadecimali. Rimuovere spazi e separatori di colonna dai valori di identificazione personale prima di immetterli nel portale. Ad esempio,
D2:68:D9:04:9F:1A:4D:6A:FD:84:77:68:7B:C6:33:C0:32:37:51:12va immesso comeD268D9049F1A4D6AFD8477687BC633C032375112.
Suggerimento
Se si sta testando e si vuole usare un solo certificato, è possibile usare lo stesso certificato per le impronte digitali primarie e secondarie.
Seleziona Salva.
Dopo aver registrato un dispositivo in IoT Hub, recuperare le informazioni usate per completare l'installazione e il provisioning del runtime di IoT Edge.
Visualizzare i dispositivi registrati e recuperare le informazioni di gestione della configurazione
I dispositivi che usano l'autenticazione del certificato X.509 necessitano del nome dell'hub IoT, del nome del dispositivo e dei relativi file di certificato per completare l'installazione e il provisioning del runtime IoT Edge.
I dispositivi abilitati per Edge che si connettono all'hub IoT sono elencati nella pagina Dispositivi. È possibile filtrare l'elenco in base al tipo di dispositivo IoT Edge dispositivi.
Installare IoT Edge
Distribuire Azure IoT Edge per Linux in Windows nel dispositivo di destinazione.
Nota
Il processo di PowerShell seguente illustra come distribuire IoT Edge per Linux in Windows nel dispositivo locale. Per eseguire la distribuzione in un dispositivo di destinazione remoto tramite PowerShell, è possibile usare PowerShell remoto per stabilire una connessione a un dispositivo remoto ed eseguire questi comandi in remoto su tale dispositivo.
In una sessione di PowerShell con privilegi elevati eseguire uno dei comandi seguenti a seconda dell'architettura del dispositivo di destinazione 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 $msiPathARM64
$msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi')) $ProgressPreference = 'SilentlyContinue' Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_5_LTS_ARM64" -OutFile $msiPath
Installare IoT Edge per Linux in Windows nel dispositivo.
Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"È possibile specificare una IoT Edge personalizzata per Linux su Windows e le directory di installazione e VHDX aggiungendo i parametri
INSTALLDIR="<FULLY_QUALIFIED_PATH>"eVHDXDIR="<FULLY_QUALIFIED_PATH>"nel comando di installazione. Ad esempio, se si vuole usare la cartella D:\EFLOW per l'installazione e la cartella D:\EFLOW-VHDX per il file VHDX, si può usare il cmdlet di PowerShell seguente.Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn","INSTALLDIR=D:\EFLOW", "VHDXDIR=D:\EFLOW-VHDX"Impostare i criteri di esecuzione nel dispositivo di destinazione su
AllSignedse non lo è già. Vedere i prerequisiti di PowerShell per i comandi per il controllo del criterio di esecuzione corrente e impostare il criterio di esecuzione suAllSigned.Creare il IoT Edge per Linux nella distribuzione Windows. La distribuzione crea la macchina virtuale Linux e installa automaticamente il runtime di IoT Edge.
Deploy-EflowSuggerimento
Per impostazione predefinita, il comando
Deploy-Eflowcrea la macchina virtuale Linux con 1 GB di RAM, 1 core di vCPU e 16 GB di spazio su disco. Tuttavia, le risorse necessarie alla macchina virtuale dipendono fortemente dai carichi di lavoro distribuiti. Se la macchina virtuale non dispone di memoria sufficiente per supportare i carichi di lavoro, l'avvio non riesce.È possibile personalizzare le risorse disponibili della macchina virtuale usando i
Deploy-Eflowparametri facoltativi del comando. Questa personalizzazione è necessaria per distribuire EFLOW in un dispositivo con i requisiti hardware minimi.Ad esempio, il comando seguente crea una macchina virtuale con 1 core di vCPU, 1 GB di RAM (espressi in MB) e 2 GB di spazio su disco:
Deploy-Eflow -cpuCount 1 -memoryInMB 1024 -vmDataSize 2Per informazioni su tutti i parametri facoltativi disponibili, vedere funzioni di PowerShell per IoT Edge per Linux in Windows.
Avviso
Per impostazione predefinita, la macchina virtuale EFLOW Linux non dispone di alcuna configurazione DNS. Le distribuzioni che usano DHCP tentano di ottenere la configurazione DNS propagata dal server DHCP. Controllare la configurazione DNS per garantire la connettività Internet. Per altre informazioni, vedere AzEFLOW-DNS.
È possibile assegnare una GPU alla distribuzione per abilitare i moduli Linux con accelerazione GPU. Per accedere a queste funzionalità, è necessario installare i prerequisiti descritti in dettaglio in GPU accelerazione per Azure IoT Edge per Linux in Windows.
Per usare un pass-through GPU, aggiungere i parametri gpuName, gpuPassthroughType e gpuCount al comando
Deploy-Eflow. Per informazioni su tutti i parametri facoltativi disponibili, vedere funzioni di PowerShell per IoT Edge per Linux in Windows.Avviso
L'abilitazione del pass-through dei dispositivi hardware potrebbe aumentare i rischi per la sicurezza. Microsoft consiglia l'uso di un driver di mitigazione dei dispositivi prodotto dal fornitore della GPU, se applicabile. Per altre informazioni, vedere Distribuire dispositivi grafici usando l'assegnazione di dispositivi discreti.
Immettere Y per accettare le condizioni di licenza.
Immettere O o R per attivare o disattivare i dati di diagnostica facoltativi , a seconda delle preferenze.
Al termine della distribuzione, nella finestra di PowerShell compare l'indicazione La distribuzione è riuscita.
Dopo una distribuzione riuscita, sei pronto a configurare il tuo dispositivo.
Configurare il dispositivo con la sua identità cloud
Configurare il dispositivo con le informazioni di autenticazione e identità cloud.
Per effettuare il provisioning del dispositivo usando certificati X.509, è necessario il tuo nome dell'hub IoT, ID dispositivo, e i percorsi assoluti al tuo certificato di identità e alla tua chiave privata nel computer host Windows.
Assicurarsi che il certificato di identità del dispositivo e la chiave privata corrispondente si trovino nel dispositivo di destinazione. Conoscere il percorso assoluto di entrambi i file.
Eseguire il comando seguente in una sessione di PowerShell con privilegi elevati nel dispositivo di destinazione. Sostituire il testo segnaposto con i propri valori.
Provision-EflowVm -provisioningType ManualX509 -iotHubHostname "HUB_HOSTNAME_HERE" -deviceId "DEVICE_ID_HERE" -identityCertPath "ABSOLUTE_PATH_TO_IDENTITY_CERT_HERE" -identityPrivKeyPath "ABSOLUTE_PATH_TO_PRIVATE_KEY_HERE"
Per altre informazioni sul comando Provision-EflowVM, vedere funzioni PowerShell per IoT Edge per Linux in Windows.
Verificare la corretta configurazione
Verificare che IoT Edge per Linux in Windows sia stato installato e configurato correttamente nel dispositivo IoT Edge.
Accedere al IoT Edge per Linux in Windows macchina virtuale usando il comando seguente nella sessione di PowerShell:
Connect-EflowVmNota
L'unico account autorizzato a connettersi tramite SSH alla macchina virtuale è quello dell'utente che lo ha creato.
Dopo aver eseguito l'accesso, è possibile controllare l'elenco dei moduli di IoT Edge in esecuzione usando il comando Linux seguente:
sudo iotedge listSe è necessario risolvere i problemi del servizio IoT Edge, usare i comandi Linux seguenti.
Recuperare i log del servizio.
sudo iotedge system logsUsare lo strumento
checkper verificare lo stato di configurazione e connessione del dispositivo.sudo iotedge check
Nota
In un dispositivo di cui è stato appena effettuato il provisioning è possibile visualizzare un errore correlato all'hub IoT Edge:
× idoneità alla produzione: la directory di archiviazione dell'Edge Hub è conservata nel file system host - Errore
Non è stati possibile controllare lo stato corrente del contenitore edgeHub
Questo errore è previsto in un nuovo dispositivo perché il modulo hub IoT Edge non è in esecuzione. Per correggere l'errore, in IoT Hub impostare i moduli per il dispositivo e creare una distribuzione. La creazione di una distribuzione avvia i moduli nel dispositivo, incluso il modulo hub IoT Edge.
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.
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.
- Apri Impostazioni su Windows.
- Selezionare Aggiungi o Rimuovi Programmi.
- Selezionare l'app Azure IoT Edge.
- Seleziona Disinstalla.
Passaggi successivi
- Continuare a deploy IoT Edge modules per informazioni su come distribuire i moduli nel dispositivo.
- Informazioni su come gestire i certificati nel IoT Edge per Linux in Windows macchina virtuale e trasferire i file dal sistema operativo host alla macchina virtuale Linux.
- Informazioni su come configurare i dispositivi IoT Edge per comunicare tramite un server proxy.