Condividi tramite


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

Si applica a:Segno di spunta IoT Edge 1.5 IoT Edge 1.5

Importante

IoT Edge 1.5 LTS è la versione supportata. IoT Edge 1.4 LTS è di fine vita a partire dal 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, distribuiscili ai dispositivi per operare al perimetro. Se più moduli interagiscono per raccogliere ed elaborare i dati, distribuirli tutti contemporaneamente. Dichiarare anche le regole di routing che le connettono.

Azure CLI è uno strumento a linea di comando open-source e multipiattaforma per gestire le risorse di Azure come IoT Edge. Consente di gestire le risorse dell'hub IoT di Azure, le istanze del servizio device provisioning e gli hub collegati predefiniti. La nuova estensione IoT arricchisce l'interfaccia della riga di comando di Azure con funzionalità come la gestione dei dispositivi e le funzionalità complete di IoT Edge.

Questo articolo illustra come creare un manifesto della distribuzione JSON e usarlo 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 dei manifesti di distribuzione e su come crearli, vedere Informazioni su come usare, configurare e riutilizzare 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. Usare il percorso del file nella sezione successiva per eseguire il comando e applicare la configurazione al dispositivo.

Di seguito è riportato un manifesto di distribuzione di base con un modulo come esempio:

Nota

Questo manifesto della distribuzione di esempio usa la versione dello schema 1.1 per l'agente e l'hub di IoT Edge. La versione dello schema 1.1 è inclusa in 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.

Passare alle directory della cartella in cui è stato salvato il manifesto della distribuzione. Se è stato usato uno dei modelli IoT Edge di Visual Studio Code, usare il file deployment.json nella cartella config della directory della soluzione e non il file deployment.template.json.

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