Préparer votre environnement de développement et de test pour IoT Edge

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

IoT Edge déplace votre logique métier existante vers des appareils opérant à la périphérie. Pour préparer vos applications et charges de travail à s’exécuter en tant que modules IoT Edge, vous devez les créer comme des conteneurs. Cet article fournit des instructions sur la façon de configurer votre environnement de développement de façon à pouvoir créer une solution IoT Edge. Une fois votre environnement de développement configuré, vous pouvez découvrir comment Développer vos propres modules IoT Edge.

Dans n’importe quelle solution IoT Edge, il y a au moins deux machines à prendre en compte : l’appareil IoT Edge (ou les appareils) qui exécute le module IoT Edge et la machine de développement qui génère, teste et déploie des modules. Cet article se concentre principalement sur l’ordinateur de développement. À des fins de test, les deux machines peuvent être la même. Vous pouvez exécuter IoT Edge sur votre ordinateur de développement, ainsi que déployer les modules sur celui-ci.

Système d’exploitation

IoT Edge s’exécute sur un ensemble spécifique de systèmes d’exploitation pris en charge. Pour développer pour IoT Edge, vous pouvez utiliser la plupart des systèmes d’exploitation pouvant exécuter un moteur de conteneur. La présence du moteur de conteneur est obligatoire sur l’ordinateur de développement pour générer vos modules en tant que conteneurs et les envoyer à un registre de conteneurs.

Si votre ordinateur de développement ne peut pas exécuter IoT Edge, passez à la section Outils de test de cet article pour savoir comment tester et déboguer localement.

Les systèmes d’exploitation de la machine de développement et les appareils IoT Edge n’ont pas besoin de correspondre. En revanche, le système d’exploitation du conteneur doit être identique avec l’ordinateur de développement et l’appareil IoT Edge. Par exemple, vous pouvez développer des modules sur un ordinateur Windows et les déployer sur un appareil Linux. L’ordinateur Windows doit exécuter des conteneurs Linux pour générer les modules pour l’appareil Linux.

Moteur de conteneur

Le concept central d’IoT Edge est que vous pouvez déployer à distance votre logique métier et cloud sur des appareils en l’empaquetant dans des conteneurs. Pour créer des conteneurs, vous avez besoin d’un moteur de conteneur sur votre ordinateur de développement.

Le seul moteur de conteneur pris en charge pour des appareils IoT Edge en production est Moby. Toutefois, tout moteur de conteneur compatible avec l’Initiative de conteneur ouvert, tel Docker, est capable de créer des images de modules IoT Edge.

Outils de développement

Visual Studio et Visual Studio Code comprennent des extensions de modules complémentaires pour vous aider à développer des solutions IoT Edge. Ces extensions fournissent des modèles spécifiques du langage pour faciliter la création et le déploiement de nouveaux scénarios IoT Edge. Les extensions Azure IoT Edge pour Visual Studio et Visual Studio Code vous aident à coder, à générer, à déployer et à déboguer vos solutions IoT Edge. Vous pouvez créer une solution IoT Edge entière contenant plusieurs modules. Les extensions mettent à jour automatiquement un modèle de manifeste de déploiement avec chaque nouvel ajout de module. Les extensions permettent également la gestion des appareils IoT à partir de Visual Studio ou de Visual Studio Code. Vous pouvez déployer des modules sur un appareil, surveillez l’état et affichez les messages à mesure qu’ils parviennent à IoT Hub. Enfin, les deux extensions utilisent l’outil de développement IoT EdgeHub pour permettre l’exécution et le débogage locaux de modules sur votre ordinateur de développement.

Si vous préférez développer avec d’autres éditeurs ou à partir de l’interface CLI, l’outil de développement Azure IoT Edge fournit des commandes qui vous permettent de développer et tester à partir de la ligne de commande. Vous pouvez créer des scénarios IoT Edge, générer des images de module, exécuter des modules dans un simulateur et surveiller les messages envoyés à IoT Hub.

Extension de Visual Studio Code

L’extension Azure IoT Edge pour Visual Studio Code fournit des modèles de modules IoT Edge basés sur différents langages de programmation, notamment C, C#, Java, Node.js et Python. Des modèles pour les fonctions Azure en C# sont également inclus.

Pour plus d’informations et pour télécharger, voir Azure IoT Edge pour Visual Studio Code.

En plus des extensions IoT Edge, il peut s’avérer utile d’installer des extensions supplémentaires pour le développement. Par exemple, vous pouvez utiliser la Prise en charge de Docker pour Visual Studio Code afin de gérer vos images, conteneurs et registres. De plus, tous les principaux langages pris en charge comprennent des extensions pour Visual Studio Code qui peuvent vous aider à développer des modules.

L’extension Azure IoT Hub est utile comme complément de l’extension Azure IoT Edge.

Prérequis

Les modèles de modules pour certains langages et services imposent des conditions préalables qui sont nécessaires pour générer les dossiers de projet sur votre ordinateur de développement avec Visual Studio Code.

Modèle de module Configuration requise
Azure Functions Kit de développement logiciel (SDK) .NET Core
C Git
C# Kit de développement logiciel (SDK) .NET Core
Java
Node.js
Python

Extension Visual Studio 2017/2019

Les outils Azure IoT Edge pour Visual Studio fournissent un modèle de module IoT Edge basé sur C# et C.

Pour plus d’informations et pour télécharger, voir Outils Azure IoT Edge pour Visual Studio 2017 ou Outils Azure IoT Edge pour Visual Studio 2019.

Outil de développement IoT Edge

L’outil de développement Azure IoT Edge simplifie le développement IoT Edge avec des fonctionnalités de ligne de commande. Cet outil fournit des commandes CLI pour développer, déboguer et tester des modules. L’outil de développement IoT Edge fonctionne avec votre système de développement, que vous ayez installé manuellement les dépendances sur votre ordinateur ou que vous utilisiez le conteneur de développement IoT Edge.

Pour plus d’informations et pour commencer, voir le wiki de l’outil de développement IoT Edge.

Outils de test

Plusieurs outils de test sont disponibles pour vous aider à simuler des appareils IoT Edge ou à déboguer des modules plus efficacement. Le tableau ci-dessous présente une comparaison générale entre les outils, tandis que les sections individuelles suivantes décrivent chaque outil plus précisément.

Seul le runtime IoT Edge est pris en charge pour les déploiements de production, mais les outils suivants vous permettent de simuler ou de créer aisément des appareils IoT Edge à des fins de test et développement. Ces outils ne s’excluent pas mutuellement et peuvent opérer ensemble pour offrir une expérience de développement complète.

Outil Également appelé Plateformes prises en charge Idéal pour
Outil de développement IoT EdgeHub iotedgehubdev Windows, Linux, macOS Simulation d’appareil pour déboguer des modules.
Conteneur de développement IoT Edge iotedgedev Windows, Linux, macOS Développement sans installation de dépendances.

Outil de développement IoT EdgeHub

L’outil de développement hub Azure IoT Edge fournit une expérience de développement et débogage locale. L’outil aide à démarrer des modules IoT Edge sans le runtime IoT Edge de façon à pouvoir créer, développer, tester, exécuter et déboguer des modules et solutions IoT Edge localement. Vous n’êtes pas obligé d’envoyer des images à un registre de conteneurs et de les déployer sur un appareil à des fins de test.

L’outil de développement IoT EdgeHub a été conçu pour fonctionner conjointement avec les extensions Visual Studio et Visual Studio Code, ainsi qu’avec l’outil de développement IoT Edge. L’outil de développement prend en charge le développement de boucle interne ainsi qu’un test de boucle externe, et s’intègre donc également avec les outils de DevOps.

Pour plus d’informations et pour installer, voir Outil de développement Azure IoT EdgeHub.

Conteneur de développement IoT Edge

Le conteneur de développement Azure IoT Edge est un conteneur Docker comprenant toutes les dépendances dont vous avez besoin pour le développement IoT Edge. Ce conteneur facilite la prise en main avec tout langage dans lequel vous souhaitez développer, dont C#, Python, Node.js et Java. Il vous suffit d’installer un moteur de conteneur tel que Docker ou Moby pour extraire le conteneur sur votre ordinateur de développement.

Pour plus d’informations, voir Conteneur de développement Azure IoT Edge.

Outils de DevOps

Lorsque vous êtes prêt à développer des solutions à grande échelle pour des scénarios de production d’envergure, tirez parti des principes de DevOps modernes, dont l’automation, la surveillance et les processus d’ingénierie logicielle simplifiée. IoT Edge comprend des extensions pour prendre en charge des outils de DevOps, dont Azure DevOps, Azure DevOps Projects et Jenkins. Si vous souhaitez personnaliser un pipeline existant ou vous servir d’un autre outil de DevOps tel que CircleCI ou TravisCI, vous pouvez le faire avec les fonctionnalités CLI incluses dans l’outil de développement IoT Edge.

Pour plus d’informations, des conseils et des exemples, voir les pages suivantes :