Déployer des modules Azure IoT Edge avec Azure CLI

S’applique à :IoT Edge 1.4 checkmark IoT Edge 1.4

Important

IoT Edge 1.4 est la version prise en charge. Si vous utilisez une version antérieure, consultez l’article Mettre à jour IoT Edge.

Une fois que vous avez créé des modules Azure IoT Edge avec votre logique métier, vous souhaitez les déployer sur vos appareils pour fonctionner en périphérie. Si vous avez plusieurs modules qui fonctionnent ensemble pour collecter et traiter des données, vous pouvez les déployer en même temps. Vous pouvez également déclarer les règles de routage qui les connectent.

Azure CLI est un outil multiplateforme open source qui permet de gérer des ressources Azure telles qu’IoT Edge. Il vous permet de gérer les ressources Azure IoT Hub, les instances de service Device Provisioning et les hubs liés dès l’installation. La nouvelle extension IoT enrichit Azure CLI avec des fonctionnalités telles que la gestion des appareils, et toutes les fonctionnalités IoT Edge.

Cet article explique comment créer un manifeste de déploiement JSON, puis utiliser ce fichier pour étendre le déploiement à un appareil IoT Edge. Pour plus d’informations sur la création d’un déploiement ciblant plusieurs appareils en fonction de leurs balises partagées, consultez Déployer et surveiller des modules IoT Edge à grande échelle.

Prérequis

  • Un hub IoT dans votre abonnement Azure.

  • Un appareil IoT Edge.

    Si vous n’avez aucun appareil IoT Edge configuré, vous pouvez en créer un sur une machine virtuelle Azure. Suivez les étapes décrites dans l’un des articles de démarrage rapide pour Créer un appareil Linux virtuel ou Créer un appareil Windows virtuel.

  • Azure CLI dans votre environnement. Au minimum, votre version d’Azure CLI doit être 2.0.70 ou ultérieure. Utilisez az --version pour valider. Cette version prend en charge les commandes d’extension az et introduit l’infrastructure de la commande Knack.

  • Extension IoT pour Azure CLI.

Configurer un manifeste de déploiement

Un manifeste de déploiement est un document JSON qui décrit les modules à déployer, le flux des données entre les modules et les propriétés souhaitées des jumeaux de module. Pour plus d’informations sur le fonctionnement et la création des manifestes de déploiement, consultez Comprendre comment les modules IoT Edge peuvent être utilisés, configurés et réutilisés.

Pour déployer des modules avec Azure CLI, enregistrez localement le manifeste de déploiement dans un fichier .json. Vous utiliserez le chemin du fichier dans la section suivante au moment d’exécuter la commande permettant d’appliquer la configuration à votre appareil.

Par exemple, voici un manifeste de déploiement de base comportant un seul module :

Remarque

Cet exemple de manifeste de déploiement utilise la version de schéma 1.1 pour l’agent et le hub IoT Edge. La version de schéma 1.1 a été publiée avec IoT Edge version 1.0.10 ; elle fournit des fonctionnalités telles que l’ordre de démarrage des modules et la hiérarchisation des routes.

{
  "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.1",
                "createOptions": "{}"
              }
            },
            "edgeHub": {
              "type": "docker",
              "status": "running",
              "restartPolicy": "always",
              "settings": {
                "image": "mcr.microsoft.com/azureiotedge-hub:1.1",
                "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.0",
                "createOptions": "{}"
              }
            }
          }
        }
      },
      "$edgeHub": {
        "properties.desired": {
          "schemaVersion": "1.1",
          "routes": {
            "upstream": "FROM /messages/* INTO $upstream"
          },
          "storeAndForwardConfiguration": {
            "timeToLiveSecs": 7200
          }
        }
      },
      "SimulatedTemperatureSensor": {
        "properties.desired": {
          "SendData": true,
          "SendInterval": 5
        }
      }
    }
  }
}

Déployer sur votre appareil

Vous déployez les modules sur votre appareil en appliquant le manifeste de déploiement que vous avez configuré avec les informations des modules.

Modifiez les répertoires dans le dossier dans lequel vous avez enregistré votre manifeste de déploiement. Si vous avez utilisé l’un des modèles IoT Edge de Visual Studio Code, utilisez le deployment.json fichier dans le dossier de configuration de votre répertoire de solution et non le deployment.template.json fichier.

Pour appliquer la configuration à un appareil IoT Edge, utilisez la commande suivante :

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

Le paramètre device-id respecte la casse. Le paramètre content pointe vers le fichier manifeste de déploiement que vous avez enregistré.

Screenshot showing the az iot edge set-modules command line output.

Afficher les modules sur votre appareil

Une fois les modules déployés sur votre appareil, vous pouvez les voir tous à l’aide de la commande suivante :

Affichez les modules sur votre appareil IoT Edge :

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

Le paramètre device-id respecte la casse.

Screenshot showing the az iot hub module-identity list command output.

Étapes suivantes

Découvrez comment déployer et surveiller des modules IoT Edge à grande échelle.