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.
Adottare DevOps con applicazioni Azure IoT Edge usando le attività di Azure IoT Edge predefinite in Azure Pipelines. Questo articolo illustra come usare Azure Pipelines per compilare, testare e distribuire moduli Azure IoT Edge usando YAML.
Questo articolo illustra come usare le attività integrate Azure IoT Edge, per Azure Pipelines, per creare pipeline di compilazione e di rilascio per la soluzione IoT Edge. Ogni attività Azure IoT Edge nella pipeline esegue una delle azioni seguenti:
| Azione | Descrizione |
|---|---|
| Compilare immagini del modulo | Accetta il codice della soluzione IoT Edge e costruisce le immagini del contenitore. |
| Invia le immagini del modulo | Effettua il push delle immagini del modulo nel registro contenitori specificato. |
| Generare il manifesto di distribuzione | Accetta un file deployment.template.json e le variabili, quindi genera il file manifesto della distribuzione IoT Edge finale. |
| Distribuire su dispositivi IoT Edge | Crea implementazioni IoT Edge su uno o più dispositivi IoT Edge. |
A meno che non sia specificato, questo articolo non copre tutte le funzionalità disponibili tramite i parametri dell'attività. Per ulteriori informazioni, vedi le seguenti risorse:
Prerequisiti
Repository di Azure Repos. Se non è disponibile, creare un nuovo repository Git nel progetto. Per questo articolo, il repository è denominato IoTEdgeRepo.
Una soluzione IoT Edge di cui è stato eseguito il commit e il push nel repository. Per creare una nuova soluzione di esempio per testare questo articolo, seguire la procedura descritta in Develop Azure IoT Edge moduli usando Visual Studio Code. Per questo articolo è stata creata una soluzione nel repository denominata IoTEdgeSolution, che include il codice per un modulo denominato filtermodule.
Per questo articolo, è sufficiente la cartella della soluzione creata dai modelli di IoT Edge in Visual Studio Code o Visual Studio. Non è necessario compilare, eseguire il push, distribuire o eseguire il debug di questo codice prima di procedere. Questi processi vengono configurati in Azure Pipelines.
Assicurarsi di conoscere il percorso del file deployment.template.json nella soluzione, che viene usato in diversi passaggi. Se non si ha familiarità con il ruolo del modello di distribuzione, vedere Informazioni su come distribuire i moduli e stabilire route.
Suggerimento
Se si sta creando una nuova soluzione, prima di tutto clonare il repository in locale. Quindi, quando si crea la soluzione, sarà possibile crearla direttamente nella cartella del repository. Da questa posizione è possibile eseguire facilmente il commit e il push dei nuovi file.
Un registro contenitori in cui eseguire il push delle immagini dei moduli. È possibile usare Azure Container Registry o un registro di terze parti.
Un hub Azure IoT attivo con almeno due dispositivi IoT Edge per testare le fasi di distribuzione di test e produzione separate. Seguire gli articoli di avvio rapido per creare un dispositivo IoT Edge in Linux o Windows.
Altre informazioni sull'uso di Azure Repos in Condividi il codice con Visual Studio e Azure Repos.
Creare una pipeline di compilazione per l'integrazione continua
In questa sezione viene creata una nuova pipeline di compilazione. La pipeline viene configurata per l'esecuzione automatica quando si eseguono le modifiche apportate alla soluzione di esempio IoT Edge e si pubblicano i log di compilazione.
Accedere all'organizzazione Azure DevOps (
https://dev.azure.com/{your organization}) e aprire il progetto che contiene il repository della soluzione IoT Edge.
Nel menu del riquadro sinistro del progetto selezionare Pipeline. Selezionare Crea pipeline al centro della pagina. Se si hanno già delle pipeline di compilazione, in alternativa, selezionare il pulsante Nuova pipeline in alto a destra.
Nella pagina Dov'è il codice? selezionare Azure Repos Git
YAML.Selezionare il repository per cui si sta creando una pipeline.
Nella pagina Configura la pipeline selezionare Pipeline di base. Se si dispone di un file YAML preesistente di Azure Pipelines da usare per creare questa pipeline, è possibile selezionare File YAML preesistente di Azure Pipelines e specificare il ramo e il percorso nel repository al file.
Nella pagina Esamina il codice YAML della pipeline è possibile selezionare il nome predefinito
azure-pipelines.ymlper rinominare il file di configurazione della pipeline.Selezionare Mostra assistente per aprire il riquadro Attività.
Per aggiungere un'attività, posizionare il cursore alla fine del file YAML o ovunque si desideri aggiungere le istruzioni per l'attività. Cercare e selezionare Azure IoT Edge, compilare i parametri dell'attività come indicato di seguito e quindi selezionare Aggiungi.
Parametro Descrizione Azione Selezionare Compila immagini del modulo. File template.json Specificare il percorso del file deployment.template.json nel repository che contiene la soluzione IoT Edge. Piattaforma predefinita Selezionare il sistema operativo appropriato per i moduli in base al dispositivo di IoT Edge di destinazione. Per altre informazioni su questa attività e sui relativi parametri, vedere Azure IoT Edge task.
Suggerimento
Dopo l'aggiunta di ogni attività, l'editor evidenzia automaticamente le righe aggiunte. Per evitare la sovrascrittura accidentale, deselezionare le righe e fornire nuovo spazio per l'attività successiva prima di aggiungere attività aggiuntive.
Ripetere questo processo per aggiungere altre tre attività con i parametri seguenti:
Attività: Azure IoT Edge
Parametro Descrizione Azione Selezionare Pubblica immagini del modulo. Tipo di registro contenitori Usare il tipo predefinito: Azure Container Registry. sottoscrizione Azure Selezionare la propria sottoscrizione. Azure Container Registry Scegliere il registro che si vuole usare per la pipeline. File template.json Specificare il percorso del file deployment.template.json nel repository che contiene la soluzione IoT Edge. Piattaforma predefinita Selezionare il sistema operativo appropriato per i moduli in base al dispositivo di IoT Edge di destinazione. Per altre informazioni su questa attività e sui relativi parametri, vedere Azure IoT Edge task.
Attività: Copia file
Parametro Descrizione Cartella di origine Cartella di origine da cui copiare. La radice del repository è vuota. Usare le variabili se i file non si trovano nel repository. Esempio: $(agent.builddirectory).Contenuto Aggiungere due righe: deployment.template.jsonemodules/**/module.json.Cartella di destinazione Specificare la variabile $(Build.ArtifactStagingDirectory). Per informazioni sulla descrizione, vedere Creare variabili.Per altre informazioni su questa attività e sui relativi parametri, vedere Attività Copia file.
Attività: Pubblica artefatti di build
Parametro Descrizione Percorso per la pubblicazione Specificare la variabile $(Build.ArtifactStagingDirectory). Per informazioni sulla descrizione, vedere Creare variabili.Nome dell'artefatto Specificare il nome predefinito: dropPercorso di pubblicazione degli artefatti Usare il percorso predefinito: Azure PipelinesPer ulteriori informazioni su questo task e i suoi parametri, consulta il task Pubblica artefatti di build.
Selezionare Salva dall'elenco a discesa Salva ed esegui in alto a destra.
Il trigger per l'integrazione continua è abilitato per impostazione predefinita per la pipeline YAML. Per modificare queste impostazioni, selezionare la pipeline e selezionare Modifica in alto a destra. Selezionare Altre azioni accanto al pulsante Esegui in alto a destra e passare a Trigger. L'integrazione continua viene visualizzata come abilitata sotto il nome della pipeline. Per visualizzare i dettagli del trigger, selezionare la casella Esegui l'override del trigger di integrazione continua YAML da qui .
Passare alla sezione successiva per creare la pipeline di rilascio.
Creare una pipeline di versione per la distribuzione continua
In questa sezione creerai una pipeline di rilascio configurata per l'esecuzione automatica quando la pipeline di compilazione rilascia gli artefatti e mostra i log di distribuzione in Azure Pipelines.
Creare una nuova pipeline e aggiungere una nuova fase:
Nella scheda Versioni in Pipeline scegliere + Nuova pipeline. In alternativa, se sono già disponibili pipeline di versione, scegliere il pulsante + Nuova e fare clic su + Nuova pipeline di versione.
Quando viene richiesto di selezionare un modello, scegli di iniziare con un incarico vuoto.
La nuova pipeline di versione viene inizializzata con un'unica fase, denominata Fase 1. Rinominare la fase 1 dev e considerarla come una pipeline di distribuzione continua per l'ambiente di sviluppo. In genere, le pipeline di distribuzione continua hanno più fasi, tra cui dev, staging e prod. È possibile usare nomi diversi e crearne di più in base alle proprie procedure DevOps. Dopo aver modificato il nome, chiudere la finestra dei dettagli della fase.
È anche possibile rinominare la pipeline di versione selezionando il testo "Nuova pipeline di versione" nella parte superiore.
Collegare la versione agli artefatti di compilazione pubblicati dalla pipeline di compilazione. Selezionare Aggiungi nell'area Artefatti.
Nella pagina Aggiungi un artefatto selezionare Compilazione come Tipo di origine. Scegli il progetto e la pipeline di compilazione che hai creato. Se lo si desidera, è possibile modificare Alias di origine impostando un valore più descrittivo. Quindi selezionare Aggiungi.
Aprire i trigger degli artefatti e selezionare l'interruttore per abilitare il trigger di distribuzione continua. A questo punto, ogni volta che è disponibile una nuova compilazione viene creata una nuova versione.
La fase dev è preconfigurata con un processo e nessuna attività. Nel menu della pipeline selezionare Attività e quindi scegliere la fase dev. Selezionare Processo agente e modificare il Nome visualizzato in QA. È possibile configurare i dettagli sul processo dell'agente, ma l'attività di distribuzione non dipende dalla piattaforma, pertanto è possibile usare qualsiasi Specifica agente nel Pool di agenti scelto.
Nel processo di controllo di qualità selezionare il segno più (+) per aggiungere due attività. Cercare e aggiungere Azure IoT Edge due volte.
Selezionare la prima attività Azure IoT Edge e configurarla con i valori seguenti:
Parametro Descrizione Nome visualizzato Il nome visualizzato viene aggiornato automaticamente quando il campo Azione cambia. Azione Selezionare Generate deployment manifest.File template.json Specificare il percorso: $(System.DefaultWorkingDirectory)/Drop/drop/deployment.template.json. Il percorso viene pubblicato dalla pipeline di compilazione.Piattaforma predefinita Selezionare il sistema operativo appropriato per i moduli in base al dispositivo di IoT Edge di destinazione. Percorso di output Inserire il percorso $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json. Questo percorso è il file manifesto della distribuzione finale IoT Edge.Queste configurazioni consentono di sostituire gli URL delle immagini del modulo nel file
deployment.template.json. Genera manifesto della distribuzione consente anche di sostituire le variabili con il valore esatto definito nel filedeployment.template.json. In Visual Studio/Visual Studio Code si specifica il valore effettivo in un file.env. In Azure Pipelines impostare il valore nella scheda Release Pipeline Variables. Passare alla scheda Variables e configurare il nome e il valore come segue:- ACR_ADDRESS: il valore del server di accesso di Azure Container Registry . È possibile recuperare il server di accesso dalla pagina Panoramica del registro contenitori nel portale di Azure.
- ACR_PASSWORD: la tua password dell'Azure Container Registry.
- ACR_USER: nome utente Azure Container Registry.
Se nel progetto sono presenti altre variabili, è possibile specificare il nome e il valore in questa scheda. Genera manifesto della distribuzione può riconoscere solo le variabili nel formato
${VARIABLE}. Assicurarsi di usare questo formato nei file*.template.json."registryCredentials": { "<ACR name>": { // Your Azure Container Registry **Registry name** value "username": "${ACR_USER}", "password": "${ACR_PASSWORD}", "address": "${ACR_ADDRESS}" } }
Selezionare la seconda attività Azure IoT Edge e configurarla con i valori seguenti:
Parametro Descrizione Nome visualizzato Il nome visualizzato viene aggiornato automaticamente quando il campo Azione cambia. Azione Selezionare Deploy to IoT Edge devices.File di distribuzione Inserire il percorso $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json. Questo percorso è il file manifesto di distribuzione di IoT Edge.sottoscrizione Azure Selezionare la sottoscrizione che contiene il IoT Hub. nome IoT Hub Selezionare l'hub IoT. Scegli un dispositivo singolo/multiplo Scegli se desideri che la release pipeline esegua la distribuzione su uno o più dispositivi. Se si esegue la distribuzione in un singolo dispositivo, immettere l'ID dispositivo IoT Edge. Se si distribuisce a più dispositivi, specificare la condizione di destinazione del dispositivo. La condizione di destinazione è un filtro che corrisponde a un set di dispositivi IoT Edge in IoT Hub. Se si vogliono usare i tag del dispositivo come condizione, è necessario aggiornare i tag dei dispositivi corrispondenti con il dispositivo gemello di IoT Hub. Aggiornare l'ID distribuzione IoT Edge e la priorità distribuzione IoT Edge nelle impostazioni avanzate. Per altre informazioni sulla creazione di una distribuzione per più dispositivi, vedere Understand IoT Edge automatic deployments. ID del dispositivo o condizione di destinazione A seconda della selezione precedente, specificare un ID dispositivo o una condizione di destinazione da distribuire in più dispositivi. Avanzato Per l'ID di distribuzione IoT Edge, specificare $(System.TeamProject)-$(Release.EnvironmentName). Questa variabile esegue il mapping del nome del progetto e della versione con l'ID di distribuzione IoT Edge.Se l'attività prevede l'uso di un'immagine che si trova in un registro attendibile Docker privato che non è visibile al cloud pubblico, è possibile impostare la variabile di ambiente SKIP_MODULE_IMAGE_VALIDATION su
trueper ignorare la convalida dell'immagine.
Selezionare Salva per salvare le modifiche nella nuova pipeline di versione. Tornare alla visualizzazione della pipeline selezionando Pipeline dal menu.
Verificare IoT Edge CI/CD con le pipeline di compilazione e rilascio
Per attivare un processo di compilazione, è possibile eseguire il push di un commit al repository del codice sorgente o attivarlo manualmente. In questa sezione si attiva manualmente la pipeline CI/CD per verificarne il funzionamento. Si verifica quindi che la distribuzione abbia esito positivo.
Nel menu del riquadro a sinistra selezionare Pipeline e aprire la pipeline di compilazione creata all'inizio di questo articolo.
È possibile attivare un processo di compilazione nella propria pipeline di compilazione selezionando il pulsante Esegui pipeline in alto a destra.
Controllare le impostazioni di Esegui pipeline. Selezionare quindi Esegui.
Selezionare Processo agente 1 per controllare lo stato di avanzamento dell'esecuzione. È possibile esaminare i log dell'output dell'attività selezionando quest'ultima.
Se la pipeline di compilazione viene completata correttamente, viene avviato un rilascio nella fase dev. Il rilascio riuscito di dev crea una distribuzione IoT Edge verso i dispositivi IoT Edge di destinazione.
Selezionare la fase dev per visualizzare i log di versione.
Se la tua pipeline sta fallendo, inizia controllando i registri. È possibile visualizzare i log passando al riepilogo dell'esecuzione della pipeline e selezionando il processo e l'attività. Se una determinata attività ha esito negativo, controllare i log per tale attività. Per istruzioni dettagliate sulla configurazione e l'uso dei log, vedere Esaminare i log per eseguire la diagnostica dei problemi della pipeline.
Passaggi successivi
- Comprendere la distribuzione di IoT Edge in Implementazioni di IoT Edge per dispositivi singoli o su larga scala
- Esamina i passaggi per creare, aggiornare o eliminare una distribuzione in Distribuire e monitorare i moduli IoT Edge su ampia scala.