Distribuire i moduli di Azure IoT Edge con l'interfaccia della riga di comando di Azure
Si applica a: IoT Edge 1.5 IoT Edge 1.4
Importante
IoT Edge 1.5 LTS e IoT Edge 1.4 LTS sono versioni supportate. IoT Edge 1.4 LTS è di fine vita il 12 novembre 2024. Se si usa una versione precedente, vedere Aggiornare IoT Edge.
Dopo aver creato i moduli di Azure IoT Edge con la logica di business, è necessario distribuirli ai dispositivi per operare all'perimetro. Se sono presenti più moduli che interagiscono per raccogliere ed elaborare i dati, è possibile distribuirli tutti contemporaneamente. È anche possibile dichiarare le regole di routing che le connettono.
L'interfaccia della riga di comando di Azure è uno strumento multipiattaforma open source per la gestione delle risorse di Azure, ad esempio IoT Edge. Consente di gestire le risorse dell'hub IoT di Azure, le istanze del servizio di provisioning di dispositivi e gli hub collegati predefiniti. La nuova estensione IoT arricchisce l'interfaccia della riga di comando di Azure con funzionalità quali la gestione dei dispositivi e le funzionalità complete di IoT Edge.
Questo articolo illustra come creare un manifesto della distribuzione JSON e quindi usare tale file per eseguire il push della distribuzione in un dispositivo IoT Edge. Per informazioni sulla creazione di una distribuzione da assegnare a più dispositivi in base ai relativi tag condivisi, vedere Distribuire e monitorare i moduli di IoT Edge su larga scala.
Prerequisiti
Un hub IoT nella sottoscrizione di Azure.
Un dispositivo IoT Edge
Se non è configurato un dispositivo IoT Edge, è possibile crearne uno in una macchina virtuale di Azure. Seguire la procedura descritta in uno degli articoli di avvio rapido su Creare un dispositivo Linux virtuale o Creare un dispositivo Windows virtuale.
Interfaccia della riga di comando di Azure nell'ambiente in uso. Almeno, la versione dell'interfaccia della riga di comando di Azure deve essere 2.0.70 o successiva. Usare il comando
az --version
per verificare. Questa versione supporta i comandi dell'estensione az e introduce il framework dei comandi Knack.Estensione IoT per l'interfaccia della riga di comando di Azure.
Configurare un manifesto della distribuzione
Un manifesto della distribuzione è un documento JSON contenente la descrizione dei moduli da distribuire, dei flussi di dati esistenti tra i moduli e delle proprietà desiderate dei moduli gemelli. Per altre informazioni sul funzionamento e sulla modalità di creazione dei manifesti della distribuzione, vedere Informazioni su come usare, configurare e riusare i moduli IoT Edge.
Per distribuire i moduli tramite l'interfaccia della riga di comando di Azure, salvare il manifesto della distribuzione in locale come file con estensione .json. Il percorso del file verrà usato nella sezione successiva quando si eseguirà il comando per applicare la configurazione al dispositivo.
Di seguito è riportato un esempio di manifesto della distribuzione di base con un solo modulo:
Nota
Questo manifesto della distribuzione di esempio usa lo schema versione 1.1 per l'agente e l'hub di IoT Edge. La versione dello schema 1.1 è stata rilasciata insieme a IoT Edge versione 1.0.10 e abilita funzionalità come l'ordine di avvio del modulo e la definizione delle priorità di route.
{
"content": {
"modulesContent": {
"$edgeAgent": {
"properties.desired": {
"schemaVersion": "1.1",
"runtime": {
"type": "docker",
"settings": {
"minDockerVersion": "v1.25",
"loggingOptions": "",
"registryCredentials": {}
}
},
"systemModules": {
"edgeAgent": {
"type": "docker",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-agent:1.5",
"createOptions": "{}"
}
},
"edgeHub": {
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-hub:1.5",
"createOptions": "{\"HostConfig\":{\"PortBindings\":{\"5671/tcp\":[{\"HostPort\":\"5671\"}],\"8883/tcp\":[{\"HostPort\":\"8883\"}],\"443/tcp\":[{\"HostPort\":\"443\"}]}}}"
}
}
},
"modules": {
"SimulatedTemperatureSensor": {
"version": "1.0",
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.5",
"createOptions": "{}"
}
}
}
}
},
"$edgeHub": {
"properties.desired": {
"schemaVersion": "1.1",
"routes": {
"upstream": "FROM /messages/* INTO $upstream"
},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
},
"SimulatedTemperatureSensor": {
"properties.desired": {
"SendData": true,
"SendInterval": 5
}
}
}
}
}
Eseguire la distribuzione nel dispositivo
I moduli vengono distribuiti nel dispositivo applicando il manifesto della distribuzione configurato con le informazioni relative ai moduli.
Modificare le directory nella cartella in cui è stato salvato il manifesto della distribuzione. Se è stato usato uno dei modelli di Visual Studio Code IoT Edge, usare il deployment.json
file nella cartella config della directory della soluzione e non nel deployment.template.json
file.
Per applicare la configurazione a un dispositivo IoT Edge usare il comando seguente:
az iot edge set-modules --device-id [device id] --hub-name [hub name] --content [file path]
Per il parametro ID dispositivo viene fatta distinzione tra maiuscole e minuscole. Il parametro content punta al file del manifesto della distribuzione salvato.
Visualizzare i moduli nel dispositivo
Dopo aver distribuito i moduli nel dispositivo, è possibile visualizzarli tutti con il comando seguente:
Visualizzare i moduli nel dispositivo IoT Edge:
az iot hub module-identity list --device-id [device id] --hub-name [hub name]
Per il parametro ID dispositivo viene fatta distinzione tra maiuscole e minuscole.
Passaggi successivi
Informazioni su come distribuire e monitorare i moduli di IoT Edge su larga scala