Creare ed effettuare il provisioning di un dispositivo IoT Edge per Linux in Windows usando chiavi simmetriche
Si applica a: IoT Edge 1.4
Importante
Le versioni di IoT Edge 1.5 LTS e IoT Edge 1.4 sono supportate. IoT Edge 1.4 LTS è di fine vita il 12 novembre 2024. Se si usa una versione precedente, vedere Aggiornare IoT Edge.
Questo articolo fornisce istruzioni end-to-end per la registrazione e il provisioning di un dispositivo IoT Edge per Linux in Windows.
Ogni dispositivo che si connette a un hub IoT ha un ID dispositivo usato per tenere traccia delle comunicazioni da cloud a dispositivo o da dispositivo a cloud. Configurare un dispositivo con le relative informazioni di connessione, che include il nome host dell'hub IoT, l'ID dispositivo e le informazioni usate dal dispositivo per l'autenticazione a hub IoT.
I passaggi descritti in questo articolo illustrano un processo denominato provisioning manuale, in cui si connette un singolo dispositivo all'hub IoT. Per il provisioning manuale, sono disponibili due opzioni per l'autenticazione dei dispositivi IoT Edge:
Chiavi simmetriche: quando si crea una nuova identità del dispositivo in hub IoT, il servizio crea due chiavi. Posizionare una delle chiavi nel dispositivo e presenta la chiave per hub IoT durante l'autenticazione.
Questo metodo di autenticazione è più rapido per iniziare, ma non come sicuro.
X.509 autofirmato: creare due certificati di identità X.509 e inserirli nel dispositivo. Quando si crea una nuova identità del dispositivo in hub IoT, si forniscono identificazioni personali da entrambi i certificati. Quando il dispositivo esegue l'autenticazione per hub IoT, presenta un certificato e hub IoT verifica che il certificato corrisponda all'identificazione personale.
Questo metodo di autenticazione è più sicuro e consigliato per gli scenari di produzione.
Questo articolo illustra l'uso di chiavi simmetriche come metodo di autenticazione. Per usare i certificati X.509, vedere Creare ed effettuare il provisioning di un dispositivo IoT Edge per Linux in un dispositivo Windows con certificati X.509.
Nota
Se sono disponibili molti dispositivi da configurare 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 di provisioning di dispositivi hub IoT:
Prerequisiti
Questo articolo illustra la registrazione del dispositivo IoT Edge e l'installazione di IoT Edge per Linux in Windows. Queste attività hanno prerequisiti e utilità diversi usati per eseguirle. Assicurarsi di avere tutti i prerequisiti coperti prima di procedere.
Strumenti di gestione dei dispositivi
È possibile usare il portale di Azure, Visual Studio Code o l'interfaccia della riga di comando di Azure per la procedura per registrare il dispositivo. Ogni utilità ha i propri prerequisiti o potrebbe essere necessario installare:
Un hub IoT gratuito o standard nella sottoscrizione di 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 minima disponibile: 1 GB
- Spazio su disco minimo: 10 GB
Supporto per la virtualizzazione
- In Windows 10 abilitare Hyper-V. Per altre informazioni, vedere Installare Hyper-V in Windows 10.
- In Windows Server installare il ruolo Hyper-V e creare un commutatore di rete predefinito. Per altre informazioni, vedere Virtualizzazione annidata per Azure IoT Edge per Linux in Windows.
- In una macchina virtuale configurare la virtualizzazione annidata. Per altre informazioni, vedere Virtualizzazione annidata.
Supporto per la rete
- Windows Server non è dotato di un'opzione predefinita. Prima di poter distribuire EFLOW in un dispositivo Windows Server, è necessario creare un commutatore virtuale. Per altre informazioni, vedere Creare un commutatore virtuale per Linux in Windows.
- Le versioni di Windows Desktop sono dotate di un commutatore predefinito che può essere usato per l'installazione di EFLOW. Se necessario, è possibile creare un commutatore virtuale personalizzato.
Suggerimento
Se si vogliono usare moduli Linux con accelerazione GPU nella distribuzione di Azure IoT Edge per Linux in Windows, sono disponibili diverse opzioni di configurazione.
Sarà necessario installare i driver corretti a seconda dell'architettura GPU e potrebbe essere necessario accedere a una build del programma Windows Insider. Per determinare le esigenze di configurazione e soddisfare questi prerequisiti, vedere Accelerazione GPU per Azure IoT Edge per Linux in Windows.
Assicurarsi di dedicare il tempo necessario per soddisfare i prerequisiti per l'accelerazione GPU. Sarà necessario riavviare il processo di installazione se si decide di volere l'accelerazione GPU durante l'installazione.
Strumenti di sviluppo
Preparare il dispositivo di destinazione per l'installazione di Azure IoT Edge per Linux in Windows e la distribuzione della macchina virtuale Linux:
Impostare i criteri 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 -List
Se il criterio di esecuzione di non
AllSigned
è , è possibile impostare i criteri dilocal machine
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 di PowerShell.
Registrare il dispositivo
È possibile usare il portale di Azure, Visual Studio Code o l'interfaccia della riga di comando di Azure per registrare il dispositivo, a seconda delle preferenze.
Nell'hub IoT nell'portale di Azure, i dispositivi IoT Edge vengono creati e gestiti separatamente dai dispositivi IoT non abilitati per la rete perimetrale.
Accedere al portale di Azure e passare all'hub IoT.
Nel riquadro sinistro selezionare Dispositivi dal menu, quindi selezionare Aggiungi dispositivo.
Nella pagina Crea un dispositivo specificare le informazioni seguenti:
- Creare un ID dispositivo descrittivo, ad esempio
my-edge-device-1
(tutte minuscole). Copiare questo ID dispositivo, perché verrà usato in un secondo momento. - Selezionare la casella di controllo Dispositivo IoT Edge.
- Selezionare Chiave simmetrica come tipo di autenticazione.
- Usare le impostazioni predefinite per generare automaticamente le chiavi di autenticazione, che connettono il nuovo dispositivo all'hub.
- Creare un ID dispositivo descrittivo, ad esempio
Seleziona Salva.
Il nuovo dispositivo dovrebbe essere elencato nell'hub IoT.
Dopo aver registrato un dispositivo in hub IoT, è possibile recuperare le informazioni di provisioning usate per completare l'installazione e il provisioning del runtime di IoT Edge nel passaggio successivo.
Visualizzare i dispositivi registrati e recuperare le informazioni di provisioning
I dispositivi che usano l'autenticazione con chiave simmetrica necessitano dei propri stringa di connessione per completare l'installazione e il provisioning del runtime di IoT Edge. Il stringa di connessione viene generato per il dispositivo IoT Edge quando si crea il dispositivo. Per Visual Studio Code e l'interfaccia della riga di comando di Azure, il stringa di connessione si trova nell'output JSON. Se si usa il portale di Azure per creare il dispositivo, è possibile trovare il stringa di connessione dal dispositivo stesso. Quando si seleziona il dispositivo nell'hub IoT, questo viene elencato come Primary connection string
nella pagina del dispositivo.
I dispositivi abilitati per i dispositivi perimetrali che si connettono all'hub IoT sono elencati nella pagina Dispositivi dell'hub IoT. Se sono presenti più dispositivi, è possibile filtrare l'elenco selezionando il tipo Dispositivi Iot Edge, quindi selezionare Applica.
Quando si è pronti per configurare il dispositivo, è necessaria la stringa di connessione che collega il dispositivo fisico alla relativa identità nell'hub IoT. I dispositivi che eseguono l'autenticazione con chiavi simmetriche hanno stringa di connessione disponibili per la copia nel portale. Per trovare il stringa di connessione nel portale:
- Nella pagina Dispositivi selezionare l'ID dispositivo IoT Edge dall'elenco.
- Copiare il valore Stringa di connessione primaria o Stringa di connessione secondaria. Entrambe le chiavi funzionano.
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 remota tramite PowerShell, è possibile usare Remote PowerShell 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_4_LTS_X64" -OutFile $msiPath
ARM64
$msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi')) $ProgressPreference = 'SilentlyContinue' Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_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 directory IoT Edge personalizzate per Linux in Windows e VHDX aggiungendo
INSTALLDIR="<FULLY_QUALIFIED_PATH>"
parametri eVHDXDIR="<FULLY_QUALIFIED_PATH>"
al comando di installazione. Ad esempio, se si vuole usare la cartella D:\EFLOW per l'installazione e D :\EFLOW-VHDX per VHDX, è possibile 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
AllSigned
se non lo è già. Vedere i prerequisiti di PowerShell per i comandi per controllare i criteri di esecuzione correnti e impostare i criteri di esecuzione suAllSigned
.Creare la distribuzione di IoT Edge per Linux in Windows. La distribuzione crea la macchina virtuale Linux e installa automaticamente il runtime di IoT Edge.
Deploy-Eflow
Suggerimento
Per impostazione predefinita, il
Deploy-Eflow
comando crea la macchina virtuale Linux con 1 GB di RAM, 1 core vCPU e 16 GB di spazio su disco. Tuttavia, le risorse necessarie per la macchina virtuale dipendono in modo elevato dai carichi di lavoro distribuiti. Se la macchina virtuale non dispone di memoria sufficiente per supportare i carichi di lavoro, l'avvio non riuscirà.È possibile personalizzare le risorse disponibili della macchina virtuale usando i
Deploy-Eflow
parametri facoltativi del comando. Questa operazione è necessaria per distribuire EFLOW in un dispositivo con i requisiti hardware minimi.Ad esempio, il comando seguente crea una macchina virtuale con 1 core vCPU, 1 GB di RAM (rappresentati in MB) e 2 GB di spazio su disco:
Deploy-Eflow -cpuCount 1 -memoryInMB 1024 -vmDataSize 2
Per 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 ha alcuna configurazione DNS. Le distribuzioni che usano DHCP tenteranno 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 ottenere l'accesso a queste funzionalità, è necessario installare i prerequisiti descritti in dettaglio in Accelerazione GPU per Azure IoT Edge per Linux in Windows.
Per usare un pass-through GPU, aggiungere i parametri gpuName, gpuPassthroughType e gpuCount al
Deploy-Eflow
comando. 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 del dispositivo hardware può aumentare i rischi per la sicurezza. Microsoft consiglia un driver di mitigazione dei dispositivi 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 viene visualizzata la finestra Distribuzione completata.
Dopo aver completato la distribuzione, è possibile eseguire il provisioning del dispositivo.
Effettuare il provisioning del dispositivo con la relativa identità cloud
Si è pronti per configurare il dispositivo con le relative informazioni di autenticazione e identità cloud.
Per effettuare il provisioning del dispositivo usando chiavi simmetriche, è necessario il stringa di connessione del dispositivo.
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 ManualConnectionString -devConnString "PASTE_DEVICE_CONNECTION_STRING_HERE"
Per altre informazioni sul Provision-EflowVM
comando, vedere Funzioni di 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 alla macchina virtuale IoT Edge per Linux in Windows usando il comando seguente nella sessione di PowerShell:
Connect-EflowVm
Nota
L'unico account autorizzato a connettersi tramite SSH alla macchina virtuale è l'utente che lo ha creato.
Dopo aver eseguito l'accesso, è possibile controllare l'elenco dei moduli IoT Edge in esecuzione usando il comando Linux seguente:
sudo iotedge list
Se è necessario risolvere i problemi del servizio IoT Edge, usare i comandi Linux seguenti.
Recuperare i log del servizio.
sudo iotedge system logs
Usare lo
check
strumento per verificare lo stato di configurazione e connessione del dispositivo.sudo iotedge check
Nota
In un dispositivo di cui è stato appena effettuato il provisioning, potrebbe essere visualizzato un errore correlato all'hub IoT Edge:
× conformità alla produzione: la directory di archiviazione dell'hub Edge è persistente nel file system host - Errore
Impossibile controllare lo stato corrente del contenitore edgeHub
Questo errore è previsto in un dispositivo di cui è stato appena effettuato il provisioning perché il modulo hub IoT Edge non è in esecuzione. Per risolvere l'errore, in hub IoT impostare i moduli per il dispositivo e creare una distribuzione. La creazione di una distribuzione per il dispositivo avvia i moduli nel dispositivo, incluso il modulo hub IoT Edge.
Quando si crea un nuovo dispositivo IoT Edge, viene visualizzato il codice 417 -- The device's deployment configuration is not set
di stato 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 dal dispositivo, usare i comandi seguenti.
- Apri impostazioni in Windows
- Selezionare Installazione applicazioni
- Selezionare l'app Azure IoT Edge
- Selezionare Disinstalla
Passaggi successivi
- Continuare a distribuire moduli IoT Edge per informazioni su come distribuire moduli nel dispositivo.
- Informazioni su come gestire i certificati nella macchina virtuale IoT Edge per Linux in Windows 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.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per