Dela via


Distribuera Azure IoT Edge-moduler med Azure CLI

Gäller för: Bockmarkering för IoT Edge 1.5 IoT Edge 1.5 Bockmarkering för IoT Edge 1.4 IoT Edge 1.4

Viktigt!

IoT Edge 1.5 LTS och IoT Edge 1.4 LTS stöds. IoT Edge 1.4 LTS upphör den 12 november 2024. Om du har en tidigare version läser du Uppdatera IoT Edge.

När du har skapat Azure IoT Edge-moduler med din affärslogik vill du distribuera dem till dina enheter för att arbeta vid gränsen. Om du har flera moduler som fungerar tillsammans för att samla in och bearbeta data kan du distribuera dem alla samtidigt. Du kan också deklarera de routningsregler som ansluter dem.

Azure CLI är ett plattformsoberoende kommandoradsverktyg med öppen källkod för hantering av Azure-resurser som IoT Edge. Det gör att du kan hantera Azure IoT Hub-resurser, enhetsetableringstjänstinstanser och länkade hubbar direkt. Det nya IoT-tillägget berikar Azure CLI med funktioner som enhetshantering och fullständig IoT Edge-funktion.

Den här artikeln visar hur du skapar ett JSON-distributionsmanifest och sedan använder den filen för att skicka distributionen till en IoT Edge-enhet. Information om hur du skapar en distribution som riktar sig mot flera enheter baserat på deras delade taggar finns i Distribuera och övervaka IoT Edge-moduler i stor skala

Förutsättningar

Konfigurera ett distributionsmanifest

Ett distributionsmanifest är ett JSON-dokument som beskriver vilka moduler som ska distribueras, hur data flödar mellan modulerna och önskade egenskaper för modultvillingarna. Mer information om hur distributionsmanifest fungerar och hur du skapar dem finns i Förstå hur IoT Edge-moduler kan användas, konfigureras och återanvändas.

Om du vill distribuera moduler med Hjälp av Azure CLI sparar du distributionsmanifestet lokalt som en .json fil. Du använder filsökvägen i nästa avsnitt när du kör kommandot för att tillämpa konfigurationen på enheten.

Här är ett grundläggande distributionsmanifest med en modul som exempel:

Kommentar

Det här exempeldistributionsmanifestet använder schemaversion 1.1 för IoT Edge-agenten och hubben. Schemaversion 1.1 släpptes tillsammans med IoT Edge version 1.0.10 och aktiverar funktioner som modulens startordning och vägprioritering.

{
  "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
        }
      }
    }
  }
}

Distribuera till din nya enhet

Du distribuerar moduler till enheten genom att använda distributionsmanifestet som du konfigurerade med modulinformationen.

Ändra kataloger till mappen där du sparade distributionsmanifestet. Om du använde en av Visual Studio Code IoT Edge-mallarna använder deployment.json du filen i mappen config i lösningskatalogen deployment.template.json och inte filen.

Använd följande kommando för att tillämpa konfigurationen på en IoT Edge-enhet:

az iot edge set-modules --device-id [device id] --hub-name [hub name] --content [file path]

Enhets-ID-parametern är skiftlägeskänslig. Innehållsparametern pekar på den distributionsmanifestfil som du sparade.

Skärmbild som visar kommandoradsutdata för az iot edge set-modules.

Visa moduler på enheten

När du har distribuerat moduler till enheten kan du visa alla med följande kommando:

Visa modulerna på din IoT Edge-enhet:

az iot hub module-identity list --device-id [device id] --hub-name [hub name]

Enhets-ID-parametern är skiftlägeskänslig.

Skärmbild som visar kommandoutdata för az iot hub module-identity list.

Nästa steg

Lär dig hur du distribuerar och övervakar IoT Edge-moduler i stor skala