Présentation des modules Azure IoT Edge
S’applique à : IoT Edge 1.5 IoT Edge 1.4
Important
IoT Edge 1.5 LTS et IoT Edge 1.4 LTS sont versions prises en charge. IoT Edge 1.4 LTS est fin de vie le 12 novembre 2024. Si vous utilisez une version antérieure, consultez l’article Mettre à jour IoT Edge.
Azure IoT Edge vous permet de déployer et de gérer la logique métier sur la périphérie sous la forme de modules. Les modules Azure IoT Edge sont la plus petite unité de calcul gérée par IoT Edge. Ils peuvent contenir des services Azure (par exemple Azure Stream Analytics) ou votre propre code spécifique à la solution. Pour comprendre comment les modules sont développés, déployés et gérés, considérez les quatre éléments conceptuels d’un module :
- Une image de module est un package contenant le logiciel qui définit un module.
- Une instance de module est l’unité de calcul spécifique exécutant l’image de module sur un appareil IoT Edge. L’instance de module est démarrée par le runtime IoT Edge.
- Une identité de module est une information (notamment des informations d’identification de sécurité) stockée dans IoT Hub et associée à chaque instance de module.
- Un jumeau de module est un document JSON stocké dans IoT Hub qui contient des informations d’état relatives à une instance de module, notamment des métadonnées, des configurations et des conditions.
Instances et images de modules
Les images de modules IoT Edge contiennent des applications qui tirent parti de la gestion, de la sécurité et des fonctionnalités de communication du runtime IoT Edge. Vous pouvez développer vos propres images de modules ou en exporter une à partir d’un service Azure pris en charge, tel qu’Azure Stream Analytics. Les images existent dans le cloud et peuvent être mises à jour, modifiées et déployées dans différentes solutions. Par exemple, un module qui utilise l’apprentissage automatique pour prédire la sortie d’une ligne de production existe en tant qu’image distincte d’un module qui utilise la vision informatique pour contrôler un drone.
Chaque fois qu’une image de module est déployée sur un appareil et démarrée par le runtime IoT Edge, une nouvelle instance de ce module est créée. Deux appareils dans différentes parties du monde peuvent utiliser la même image de module. Toutefois, chaque appareil a sa propre instance de module lorsque le module est démarré sur l’appareil.
Dans l’implémentation, les images de modules existent en tant qu’images de conteneurs dans un référentiel tandis que les instances de modules sont des conteneurs sur des appareils.
Identités de modules
Quand une nouvelle instance de module est créée par le runtime IoT Edge, elle est associée à une identité de module correspondante. L’identité de module est stockée dans IoT Hub et utilisée comme étendue d’adressage et de sécurité pour toutes les communications cloud et locales pour cette instance de module.
L’identité associée à une instance de module dépend de l’identité de l’appareil sur lequel l’instance s’exécute et du nom que vous donnez à ce module dans votre solution. Par exemple, si vous nommez insight
un module qui utilise Azure Stream Analytics et que vous le déployez sur un appareil nommé Hannover01
, le runtime IoT Edge crée une identité de module correspondante nommée /devices/Hannover01/modules/insight
.
Il est clair que dans les scénarios où vous avez besoin de déployer une image de module plusieurs fois sur le même appareil, vous pouvez déployer la même image plusieurs fois avec des noms différents.
Jumeaux de module
Chaque instance de module a aussi un jumeau de module correspondant que vous pouvez utiliser pour configurer l’instance de module. L’instance et le jumeau sont associés par le biais de l’identité de module.
Un jumeau de module est un document JSON qui stocke des propriétés de configuration et des informations sur un module. Ce concept s’apparente au concept de jumeau d’appareil dans IoT Hub. La structure d’un jumeau de module est identique à celle d’un jumeau d’appareil. Les API utilisées pour interagir avec les deux types de jumeaux sont identiques. La seule différence entre les deux est l’identité utilisée pour instancier le SDK client.
// Create a ModuleClient object. This ModuleClient will act on behalf of a
// module since it is created with a module’s connection string instead
// of a device connection string.
ModuleClient client = new ModuleClient.CreateFromEnvironmentAsync(settings);
await client.OpenAsync();
// Get the module twin
Twin twin = await client.GetTwinAsync();
Fonctionnalités hors ligne
Les modules Azure IoT Edge peuvent fonctionner en mode hors connexion indéfiniment après la première synchronisation avec IoT Hub. Les appareils IoT Edge peuvent également étendre cette fonctionnalité hors connexion avec d’autres appareils IoT. Pour plus d’informations, consultez Introduction aux fonctionnalités hors connexion étendues pour les appareils, modules et appareils en aval IoT Edge.