Déployer une machine virtuelle Linux prenant en charge IoT Edge
Pour tester la configuration de votre IoT Edge, vous devez déployer le runtime IoT Edge sur une machine virtuelle.
Avant de déployer des appareils IoT Edge dans vos magasins, vous devez vérifier que les appareils fonctionnent comme prévu. Pour tester votre scénario, vous envisagez de déployer le runtime IoT Edge sur une machine virtuelle Linux Azure, puis de déployer vos modules IoT Edge sur cette machine virtuelle.
Ici, vous passez en revue certains concepts fondamentaux IoT Edge, découvrir comment un appareil IoT Edge se connecte à une application Azure IoT Central et comment Azure IoT Central déploie vos modules IoT Edge dans le runtime IoT Edge.
Qu’est-ce que le runtime IoT Edge ?
Le runtime Azure IoT Edge active les logiques cloud et personnalisées sur les périphériques IoT Edge. Le runtime se trouve sur l'appareil IoT Edge et effectue des opérations de gestion et de communication. L’exécution :
Il installe et met à jour des charges de travail sur l'appareil.
Il tient à jour les normes de sécurité Azure IoT Edge sur l’appareil.
Il garantit que les modules IoT Edge sont toujours en cours d’exécution.
Il envoie des rapports d’intégrité du module dans le cloud pour la surveillance à distance.
Gère les communications entre :
- Les appareils en aval et un appareil IoT Edge
- Modules sur un appareil IoT Edge
- Un appareil IoT Edge et le cloud
- Appareils IoT Edge
Que sont les modules IoT Edge ?
Les modules IoT Edge sont des unités d’exécution, implémentées qui exécutent votre logique métier en périphérie. Les modules sont implémentés en tant que conteneurs compatibles Docker. Plusieurs modules peuvent être configurés pour communiquer entre eux, créant ainsi un pipeline de traitement des données. Vous pouvez développer des modules personnalisés ou créer des packages de certains services Azure dans des modules qui fournissent des analyses en mode hors connexion et en périphérie. Étant donné que les modules s’exécutent dans des conteneurs Dockers, ils se comportent de la même manière qu’ils soient installés sur une machine virtuelle ou sur un appareil physique.
Dans l’unité suivante, vous installerez le runtime IoT Edge et vous déploierez un module personnalisé qui collecte les données environnementales à envoyer à Azure IoT Central. Un opérateur Azure IoT Central peut ensuite surveiller les conditions environnementales dans vos magasins en affichant les données de télémétrie sur les tableaux de bord de l’application.
Comment un appareil IoT Edge se connecte-t-il à Azure IoT Central ?
Les appareils IoT Edge, comme d’autres appareils, utilisent le service IoT Hub Device Provisioning (DPS) pour se connecter à votre application Azure IoT Central. Dans l’unité précédente, quand vous avez ajouté un appareil à votre application Azure IoT Central, vous avez pris note de l’ID d’étendue et laclé d’appareil. Vous ajoutez ces valeurs au fichier de configuration IoT Edge sur l’appareil IoT Edge. La section concernée de ce fichier TOML se présente comme suit. registration_id
est l’ID de l’appareil :
[provisioning]
source = "dps"
global_endpoint = "https://global.azure-devices-provisioning.net"
id_scope = "YOUR_ID_SCOPE"
[provisioning.attestation]
method = "symmetric_key"
registration_id = "YOUR_DEVICE_ID"
symmetric_key = { value = "YOUR_DEVICE_KEY" }
Dans l’unité suivante, le script de déploiement que vous utilisez pour l’appareil IoT Edge modifie le fichier de configuration pour vous.
Comment Azure IoT Central déploie des modules sur un runtime IoT Edge ?
Dans l’unité précédente, lorsque vous avez créé le modèle d’appareil pour le capteur d’environnement, vous avez chargé un manifeste de déploiement dans le modèle. Lorsque le runtime IoT Edge se connecte à votre application Azure IoT Central, il télécharge le manifeste de déploiement. Le runtime utilise les informations du manifeste de déploiement pour déterminer les modules à installer et comment les configurer. Les modules sont téléchargés à partir d’un registre de conteneurs, tel que Azure Container Registry ou Docker Hub.
Le manifeste de déploiement que vous avez utilisé installe les deux modules système requis, edgeAgent
et edgeHub
, ainsi qu’un module SimulatedTemperatureSensor
personnalisé. Ce module personnalisé envoie les données de télémétrie ambiante et machine à Azure IoT Central et il compte deux propriétés, SendData et SendInterval, qu’un opérateur peut utiliser pour configurer le module :
{
"modulesContent": {
"$edgeAgent": {
"properties.desired": {
"schemaVersion": "1.0",
"runtime": {
"type": "docker",
"settings": {
"minDockerVersion": "v1.25",
"loggingOptions": "",
"registryCredentials": {}
}
},
"systemModules": {
"edgeAgent": {
"type": "docker",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-agent:1.4",
"createOptions": "{}"
}
},
"edgeHub": {
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-hub:1.4",
"createOptions": "{}"
}
}
},
"modules": {
"SimulatedTemperatureSensor": {
"version": "1.0",
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.4.6",
"createOptions": "{}"
}
}
}
}
},
"$edgeHub": {
"properties.desired": {
"schemaVersion": "1.0",
"routes": {
"route": "FROM /* INTO $upstream"
},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
},
"SimulatedTemperatureSensor": {
"properties.desired": {
"SendData": true,
"SendInterval": 10
}
}
}
}