Share via


Distribuire i moduli di Azure IoT Edge con l'interfaccia della riga di comando di Azure

Si applica a:Segno di spunta IoT Edge 1.5 IoT Edge 1.5 Segno di spunta IoT Edge 1.4 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

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.

Screenshot che mostra l'output della riga di comando az iot edge set-modules.

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.

Screenshot che mostra l'output del comando az iot hub module-identity list.

Passaggi successivi

Informazioni su come distribuire e monitorare i moduli di IoT Edge su larga scala