Azure IoT Edge-modules implementeren met Azure CLI

Van toepassing op:IoT Edge 1.5-vinkje IoT Edge 1.5 Vinkje voor IoT Edge 1.4 IoT Edge 1.4

Belangrijk

IoT Edge 1.5 LTS en IoT Edge 1.4 LTS worden ondersteund releases. IoT Edge 1.4 LTS eindigt op 12 november 2024. Raadpleeg IoT Edge bijwerken als u een eerdere versie hebt.

Zodra u Azure IoT Edge-modules met uw bedrijfslogica hebt gemaakt, wilt u deze implementeren op uw apparaten om aan de rand te werken. Als u meerdere modules hebt die samenwerken om gegevens te verzamelen en te verwerken, kunt u ze allemaal tegelijk implementeren. U kunt ook de routeringsregels declareren waarmee deze worden verbonden.

Azure CLI is een opensource-platformoverschrijdend opdrachtregelprogramma voor het beheren van Azure-resources zoals IoT Edge. Hiermee kunt u Azure IoT Hub-resources, device provisioning service-exemplaren en gekoppelde hubs standaard beheren. De nieuwe IoT-extensie verrijkt Azure CLI met functies zoals apparaatbeheer en volledige IoT Edge-functionaliteit.

In dit artikel wordt beschreven hoe u een JSON-implementatiemanifest maakt en vervolgens dat bestand gebruikt om de implementatie naar een IoT Edge-apparaat te pushen. Zie IoT Edge-modules op schaal implementeren en bewaken voor informatie over het maken van een implementatie die is gericht op meerdere apparaten op basis van hun gedeelde tags

Vereisten

Een implementatiemanifest configureren

Een implementatiemanifest is een JSON-document waarin wordt beschreven welke modules moeten worden geïmplementeerd, hoe gegevens stromen tussen de modules en de gewenste eigenschappen van de moduledubbels. Zie Begrijpen hoe IoT Edge-modules kunnen worden gebruikt, geconfigureerd en hergebruikt voor meer informatie over hoe implementatiemanifesten werken en hoe ze kunnen worden gemaakt.

Als u modules wilt implementeren met behulp van de Azure CLI, slaat u het implementatiemanifest lokaal op als een .json-bestand. U gebruikt het bestandspad in de volgende sectie wanneer u de opdracht uitvoert om de configuratie op uw apparaat toe te passen.

Hier volgt een basisimplementatiemanifest met één module als voorbeeld:

Notitie

In dit voorbeeldimplementatiemanifest wordt schemaversie 1.1 gebruikt voor de IoT Edge-agent en -hub. Schemaversie 1.1 is uitgebracht samen met IoT Edge versie 1.0.10 en maakt functies mogelijk, zoals opstartvolgorde van modules en route-prioriteitstelling.

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

Uw apparaat implementeren

U implementeert modules op uw apparaat door het implementatiemanifest toe te passen dat u hebt geconfigureerd met de modulegegevens.

Wijzig mappen in de map waarin u het distributiemanifest hebt opgeslagen. Als u een van de IoT Edge-sjablonen van Visual Studio Code hebt gebruikt, gebruikt u het deployment.json bestand in de configuratiemap van uw oplossingsmap en niet het deployment.template.json bestand.

Gebruik de volgende opdracht om de configuratie toe te passen op een IoT Edge-apparaat:

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

De parameter apparaat-id is hoofdlettergevoelig. De inhoudsparameter verwijst naar het manifestbestand voor de implementatie dat u hebt opgeslagen.

Schermopname van de opdrachtregeluitvoer az iot edge set-modules.

Modules op uw apparaat weergeven

Nadat u modules op uw apparaat hebt geïmplementeerd, kunt u ze allemaal weergeven met de volgende opdracht:

De modules op uw IoT Edge-apparaat bekijken:

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

De parameter apparaat-id is hoofdlettergevoelig.

Schermopname van de uitvoer van de opdracht az iot hub module-identity list.

Volgende stappen

Meer informatie over het implementeren en bewaken van IoT Edge-modules op schaal