Déployer des modules Azure IoT Edge avec Azure CLI

S’applique à : Coche IoT Edge 1.5 IoT Edge 1.5 Coche IoT Edge 1.4 IoT Edge 1.4

Important

IoT Edge 1.5 LTS et IoT Edge 1.4 LTS sont des versions prises en charge. IoT Edge 1.4 LTS sera en fin de vie le 12 novembre 2024. Si vous utilisez une version antérieure, consultez l’article Mettre à jour IoT Edge.

Dès que vous avez créé des modules Azure IoT Edge avec votre logique métier, vous pouvez les déployer sur vos appareils afin qu’ils opèrent à la périphérie. Si vous avez plusieurs modules qui fonctionnent ensemble pour collecter et traiter les données, vous pouvez tous les déployer à la fois. Vous pouvez également déclarer les règles de routage qui les connectent.

Azure CLI est un outil en ligne de commande open source et multiplateforme qui permet de gérer les ressources Azure comme 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. Vous devez utiliser au minimum Azure CLI version 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.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
        }
      }
    }
  }
}

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.

Remplacez les répertoires par le dossier où vous avez enregistré votre manifeste de déploiement. Si vous avez utilisé un des modèles IoT Edge de Visual Studio Code, utilisez le fichier deployment.json dans le dossier config du répertoire de votre solution, et pas le fichier deployment.template.json.

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é.

Capture d’écran montrant la sortie de la ligne de commande az iot edge set-modules.

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.

Capture d’écran montrant la sortie de la commande az iot hub module-identity list.

Étapes suivantes

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