Configurer Azure IoT Edge pour Azure Sphere
Important
Il s’agit de la documentation Azure Sphere (héritée). Azure Sphere (hérité) prend sa retraite le 27 septembre 2027 et les utilisateurs doivent migrer vers Azure Sphere (intégré) pour l’instant. Utilisez le sélecteur de version situé au-dessus du TOC pour afficher la documentation Azure Sphere (intégrée).
Azure IoT Edge fournit une couche de filtrage et de traitement des données entre un appareil en aval, comme Azure Sphere et Azure IoT Hub. Envisagez d’utiliser Azure IoT Edge si votre appareil Azure Sphere produit une quantité considérable de données ou de données qui nécessitent un post-traitement.
Cette rubrique décrit les étapes de configuration d’un appareil Azure IoT Edge avec Azure Sphere. Azure Sphere prend en charge les versions 1.1 et 1.2 d’Azure IoT Edge ; des différences significatives sont notées dans les instructions. Les principales différences sont les suivantes :
- Le nom du package a changé de
iotedge
àaziot-edge
. - Le fichier de configuration par défaut a un nouveau nom et un nouvel emplacement. Dans Azure IoT Edge 1.1, le fichier de configuration était /etc/iotedge/config.yaml. Dans Azure IoT Edge 1.2, le fichier de configuration est /etc/aziot/config.toml.
- Azure IoT Edge 1.2 nécessite un nom de domaine complet (FQDN) accessible via un serveur DNS sur le réseau.
Une fois les tâches effectuées dans cette rubrique, votre appareil Azure Sphere est configuré pour envoyer des données à un hub Azure IoT via un appareil Azure IoT Edge qui agit comme une passerelle transparente. Vous pouvez ajouter un filtrage et un traitement de données supplémentaires avec un module sur l’appareil Azure IoT Edge en suivant le guide du module Azure IoT Edge.
Avant de commencer
Les étapes décrites dans cette rubrique supposent que :
- Votre appareil Azure Sphere est connecté à votre PC par USB.
- Vous avez un abonnement Azure.
- Vous avez créé une instance Azure IoT Hub et provisionné manuellement un appareil. Notez que vous devez utiliser le certificat d’autorité de certification client pour IoT Hub plus loin dans la procédure (étape 6).
- Vous avez créé un groupe de ressources et toutes les ressources associées aux services Azure IoT Hub et IoT Edge doivent appartenir à ce groupe de ressources.
Important
Même si vous pouvez créer un abonnement Azure gratuitement, le processus d’inscription vous demande d’entrer un numéro de carte de crédit. Azure fournit plusieurs niveaux de service d’abonnement. Par défaut, le niveau Standard, qui nécessite des frais de service mensuels, est sélectionné lorsque vous créez une instance Azure IoT Hub. Pour éviter les frais mensuels, sélectionnez le niveau Gratuit. Le niveau Gratuit inclut les services requis pour utiliser votre appareil avec une instance Azure IoT Hub, y compris le jumeau d’appareil. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
Vue d’ensemble
La configuration d’un appareil Azure IoT Edge et sa configuration pour fonctionner avec un appareil Azure Sphere nécessite un processus en plusieurs étapes et vous devez planifier environ 8 heures pour parcourir les étapes, en particulier si vous n’êtes pas familiarisé avec Azure IoT Edge. S’il s’agit de votre première utilisation d’Azure IoT Edge, suivez les instructions de démarrage rapide de chaque section pour configurer et configurer un appareil IoT Edge qui s’exécute sur une machine virtuelle Linux.
Ces étapes ne doivent être effectuées qu’une seule fois par locataire Azure Sphere et par appareil Azure IoT Edge ; Toutefois, chaque appareil Azure Sphere doit être configuré manuellement dans Azure IoT Hub, et l’appareil Azure IoT Edge doit être défini comme parent de l’appareil Azure Sphere.
Les étapes d’installation peuvent être divisées en trois regroupements logiques :
Créer et configurer l’appareil IoT Edge en tant que passerelle transparente
- Étape 1. Créez un appareil Azure IoT Edge.
- Étape 2. Configurez l’appareil de passerelle Azure IoT Edge en tant que serveur.
- Étape 3. Ouvrez les ports d’appareil de passerelle Azure IoT Edge pour la communication.
- Étape 4. Mettez à jour le nom d’hôte de passerelle dans config.toml (Azure IoT Edge version 1.2) ou config.yaml (Azure IoT Edge version 1.1).
Configurer l’appareil Azure Sphere dans Azure IoT Hub
- Étape 5. Définissez l’appareil Azure IoT Edge comme parent de l’appareil Azure Sphere.
Établir une connexion approuvée entre l’appareil Azure Sphere et l’appareil IoT Edge
- Étape 6. Fournissez le certificat d’autorité de certification client de l’appareil Azure Sphere à l’appareil Azure IoT Edge.
- Étape 7. Fournissez le certificat d’autorité de certification racine de l’appareil Azure IoT Edge à l’appareil Azure Sphere.
Étape 1. Créer un appareil Azure IoT Edge
Vous devez configurer un appareil Azure IoT Edge et l’inscrire auprès d’Azure IoT Hub, si ce n’est déjà fait.
Vous pouvez utiliser le service Device Provisioning (DPS) pour approvisionner l’appareil Azure IoT Edge. Toutefois, vous ne pouvez pas utiliser DPS pour approvisionner l’appareil Azure Sphere. L’approvisionnement automatique d’appareils en aval de l’appareil Azure IoT Edge avec Azure IoT Hub DPS n’est pas pris en charge.
Vous pouvez suivre les étapes du guide de démarrage rapide IoT Edge pour configurer un appareil Azure IoT Edge qui s’exécute sur une machine virtuelle Linux ou un appareil Windows et l’inscrire auprès d’Azure IoT Hub.
Procédez comme suit dans le guide de démarrage rapide pour :
- Inscrivez un appareil Azure IoT Edge dans votre instance Azure IoT Hub. Ne créez pas de hub IoT à cette étape, inscrivez simplement votre appareil Azure IoT Edge auprès du hub IoT que vous avez déjà créé.
- Installez et démarrez le runtime Azure IoT Edge sur votre appareil Azure IoT Edge.
Remarque
Dans le guide de démarrage rapide IoT Edge, arrêtez-vous avant de déployer un module.
Étape 2. Configurer l’appareil de passerelle IoT Edge en tant que serveur
Suivez les instructions pour configurer un appareil Azure IoT Edge pour agir en tant que passerelle transparente (Azure IoT Edge 1.2) ou Azure IoT Edge 1.1, mais arrêtez quand vous atteignez la section « Ouvrir des ports sur l’appareil de passerelle ». Bien que ces instructions vous indiquent de copier les fichiers de certificat sur votre appareil IoT Edge, ne copiez pas les fichiers sur votre machine virtuelle jusqu’à l’étape 8 de cette procédure.
Dans le cadre des étapes que vous avez effectuées pour configurer la passerelle d’appareil en tant que serveur, vous disposez déjà des éléments suivants :
- Configuré les certificats d’appareil Azure IoT Edge.
- Déployé le module Hub Azure IoT Edge.
- Routage configuré des messages via Azure IoT Edge.
En outre, dans le cadre de ces étapes, vous aurez créé ces certificats :
- Certificat d’autorité de certification racine :
certs/azure-iot-test-only.root.ca.cert.pem
- Certificat d’autorité de certification d’appareil et clé privée (utilisé pour inscrire l’appareil IoT Edge auprès de l’IoT Hub) :
certs/iot-edge-device-identity-<cert-name>-full-chain.cert.pem
private/iot-edge-device-identity-<cert-name>.key.pem
- Certificat d’autorité de certification IoT Edge et clé privée (à copier sur un appareil IoT Edge et référencé dans son fichier de configuration) :
certs/iot-edge-device-ca-<cert-name>-full-chain.cert.pem
private/iot-edge-device-ca-<cert-name>.key.pem
Si vous suivez le guide de démarrage rapide, utilisez les instructions Linux pour configurer les certificats de démonstration si l’ordinateur sur lequel vous générez les certificats est un ordinateur Linux. Utilisez les instructions Windows pour générer les certificats de démonstration si l’ordinateur sur lequel vous générez les certificats est un ordinateur Windows. Consultez la section pour copier des certificats racines sur une machine virtuelle Linux ou sur un ordinateur Windows local.
Le certificat d’autorité de certification racine Azure IoT Edge sera modifié à l’étape 7, mais vous aurez besoin du certificat d’origine à l’étape 8. Conservez une copie du certificat d’origine pour pouvoir le réutiliser.
Remarque
Lors de la mise à jour de la section certificats du fichier config.toml (Azure IoT Edge 1.2) ou config.yaml (Azure IoT Edge 1.1), vérifiez que la certificates:
ligne dans le fichier config.toml (Azure IoT Edge 1.2) ou config.yaml (Azure IoT Edge 1.1) n’a pas d’espace blanc précédent et que chacun des certificats imbriqués est mis en retrait par deux espaces.
Une fois que vous avez mis à jour le fichier, vérifiez que le module edgehub s’exécute sur votre appareil Azure IoT Edge :
sudo iotedge list
Pour plus d’informations, consultez Comment utiliser un appareil IoT Edge en tant que passerelle (Azure IoT Edge 1.2) ou Azure IoT Edge 1.1.
Si vous utilisez des certificats de test, arrêtez avant de générer le certificat d’appareil en aval, comme indiqué dans Créer des certificats d’appareil en aval (Azure IoT Edge 1.2) ou Azure IoT Edge 1.1.
Étape 3. Ouvrir les ports d’appareil de passerelle Azure IoT Edge pour la communication
Les appareils de passerelle doivent être en mesure de recevoir des messages de leurs appareils en aval. Pour qu’un scénario de passerelle fonctionne, au moins l’un des protocoles pris en charge par IoT Hub doit être ouvert pour le trafic entrant à partir d’appareils en aval.
Azure Sphere utilise le protocole MQTT. Ce protocole utilise le port 8883.
Pour plus d’informations, consultez Ouvrir des ports sur un appareil de passerelle (Azure IoT Edge 1.2) ou Azure IoT Edge 1.1.
Procédez comme suit pour ouvrir le port 8883 sur une machine virtuelle Windows après avoir configuré un appareil Edge dans le guide de démarrage rapide :
- Si nécessaire, connectez-vous à votre Portail Azure à l’aide de votre compte Azure.
- Accédez à la machine virtuelle que vous avez créée à l’étape 1 : Créer un appareil Azure IoT Edge.
- Dans la section Paramètres à gauche, sélectionnez Mise en réseau, puis Ajouter une règle de port entrant.
- Dans le panneau Ajouter une règle de port entrant, sous Plages de ports de destination, remplacez la valeur par 8883.
- Sous Protocole, sélectionnez TCP.
- Sous Nom, remplacez la valeur par MQTT.
- Conservez tous les autres paramètres comme valeur par défaut, puis sélectionnez Ajouter.
Suivez ces étapes pour ouvrir le port 8883 sur une machine virtuelle Linux après avoir configuré un appareil Azure IoT Edge dans le guide de démarrage rapide :
Exécutez la commande suivante pour vérifier si le port de MQTT est ouvert :
sudo netstat -lptu
Si nécessaire, utilisez la commande suivante pour ouvrir le port :
sudo ufw allow 8883
Cela définit une règle de sécurité entrante pour autoriser la communication pour le protocole MQTT vers la passerelle Azure IoT Edge.
Étape 4. Mettre à jour le nom d’hôte de la passerelle
Cette étape utilise différentes procédures en fonction de la version d’Azure IoT Edge que vous utilisez : Azure IoT Edge 1.2 ou Azure IoT Edge 1.1.
Azure IoT Edge 1.2 : Mettez à jour le nom d’hôte de passerelle dans config.toml
Le runtime Azure IoT Edge prend en charge les noms d’hôte qui sont inférieurs à 64 caractères. Les machines physiques n’ont généralement pas de noms d’hôte longs, mais si vous utilisez une machine virtuelle comme appareil Azure IoT Edge, comme dans l’exemple de démarrage rapide, vous devez configurer manuellement le nom d’hôte.
Pour résoudre les problèmes d’un nom d’hôte non valide, consultez les résolutions d’erreurs courantes.
Procédez comme suit pour configurer le nom d’hôte de l’appareil Azure IoT Edge après avoir configuré le port MQTT dans le guide de démarrage rapide :
Recherchez le nom de domaine complet (FQDN) de votre passerelle IoT Edge en accédant à votre appareil IoT Edge (machine virtuelle Linux) dans le portail Azure et en copiant la valeur du nom DNS dans la page de vue d’ensemble.
Si nécessaire, connectez-vous à l’appareil Azure IoT Edge.
Ouvrez le fichier config.toml dans un éditeur de texte.
/etc/aziot/config.toml
Collez le nom de domaine complet dans la section nom d’hôte de config.toml. Vérifiez que le nom est en minuscules.
hostname: "<iotedge_machinename>.<mydomain>"
Remarque
Par conception avec Azure IoT Edge v1.2 et versions ultérieures, le nom d’hôte doit être un nom de domaine complet (une adresse IP n’est plus autorisée, comme dans la version 1.1) ; par conséquent, un serveur DNS avec l’enregistrement A approprié sur le même réseau est obligatoire.
Redémarrez le démon
iotedge
.sudo systemctl restart iotedge
Si vous voyez des erreurs (texte en couleur avec le préfixe « [ERROR] ») dans l’état, examinez les journaux du démon pour avoir des informations détaillées sur l’erreur.
sudo journalctl -u iotedge --no-pager --no-full
Pour éviter les avertissements, configurez la configuration DNS pour les modules sur l’appareil Azure IoT Edge afin d’inclure un fichier de configuration sur /etc/docker/daemon.json, par exemple :
{ "dns": ["<IP address of your DNS server>"] }
Azure IoT Edge 1.1 : Mettez à jour le nom d’hôte de passerelle dans config.yaml
Le runtime Azure IoT Edge prend en charge les noms d’hôte qui sont inférieurs à 64 caractères. Les machines physiques n’ont généralement pas de noms d’hôte longs, mais si vous utilisez une machine virtuelle comme appareil Azure IoT Edge, comme dans l’exemple de démarrage rapide, vous devez configurer manuellement le nom d’hôte.
Pour résoudre les problèmes d’un nom d’hôte non valide, consultez les résolutions d’erreurs courantes.
Procédez comme suit pour configurer le nom d’hôte de l’appareil Azure IoT Edge après avoir configuré le port MQTT dans le guide de démarrage rapide :
Dans le portail Azure, accédez à votre machine virtuelle. Copiez la valeur du nom DNS (FQDN de l’ordinateur) dans la section Vue d’ensemble .
Si nécessaire, connectez-vous à l’appareil Azure IoT Edge.
Ouvrez le fichier config.yaml dans un éditeur de texte.
/etc/iotedge/config.yaml
Collez le nom de domaine complet dans la section nom d’hôte de config.yaml. Vérifiez que le nom est en minuscules.
`hostname: "<machinename>.<region>.cloudapp.azure.com"`
Remarque
Vous devrez peut-être utiliser le nom complet de l’ordinateur pour le nom d’hôte (adresse IP ou nom d’hôte réel) si un programme de résolution DNS se trouve sur le réseau, car Azure Sphere ne prend pas en charge netbios.
Redémarrez le démon
iotedge
.sudo systemctl restart iotedge
Si vous voyez des erreurs (texte en couleur avec le préfixe « [ERROR] ») dans l’état, examinez les journaux du démon pour avoir des informations détaillées sur l’erreur.
sudo journalctl -u iotedge --no-pager --no-full
Pour éviter les avertissements, configurez la configuration DNS pour les modules sur l’appareil Azure IoT Edge afin d’inclure un fichier de configuration sur /etc/docker/daemon.json, par exemple :
{ "dns": ["<IP address of your DNS server>"] }
Étape 5. Définir l’appareil Azure IoT Edge comme parent de l’appareil Azure Sphere
Procédez comme suit pour définir l’appareil Azure IoT Edge comme parent de l’appareil Azure Sphere :
- Accédez à l’appareil Azure Sphere configuré manuellement ci-dessus.
- Sélectionnez ID de l’appareil.
- Sélectionnez l’icône d’engrenage sous Aucun appareil parent.
- Sélectionnez l’appareil Azure IoT Edge que vous souhaitez définir comme parent.
- Sélectionnez OK, puis Enregistrer.
L’appareil Azure IoT Edge devient désormais le parent de l’appareil Azure Sphere.
Étape 6. Fournir le certificat d’autorité de certification client de l’appareil Azure Sphere à l’appareil IoT Edge
Pour vérifier les certificats d’appareil Azure Sphere, l’appareil Azure IoT Edge doit avoir sa propre copie de l’autorité de certification cliente.
Téléchargez le certificat d’autorité de certification du locataire, si vous ne l’avez pas déjà fait. Remarque : Vous devez déjà effectuer cette opération dans le cadre de la configuration de votre hub Azure IoT.
À partir de l’invite de commandes, connectez-vous avec votre connexion Azure Sphere :
azsphere login
Téléchargez le certificat d’autorité de certification de votre locataire Azure Sphere. Cette commande télécharge le certificat dans un fichier nommé CAcertificate.cer dans le répertoire de travail actuel. Vérifiez que vous téléchargez le fichier dans un répertoire dans lequel vous disposez d’une autorisation d’écriture, ou que l’opération de téléchargement échoue. Le fichier de sortie doit avoir une extension .cer.
azsphere ca-certificate download --destination CAcertificate.cer
Convertissez le certificat d’autorité de certification client au format PEM. Les exemples d’instructions pour convertir le format sur un ordinateur Windows sont les suivants :
- Recherchez le chemin du certificat sur votre ordinateur et double-cliquez sur le certificat pour l’ouvrir.
- Ouvrez l’onglet Détails et sélectionnez Copier dans fichier.
- Dans l’Assistant Exportation de certificat, sélectionnez Suivant.
- Sélectionnez le format X.509 encodé en base 64 (CER), puis sélectionnez Suivant.
- Entrez le nom de fichier du certificat à exporter, puis sélectionnez Suivant.
- Sélectionnez Terminer pour fermer l’assistant.
- Renommez le fichier de certificat téléchargé pour avoir l’extension de fichier .pem.
Ajoutez le certificat de locataire au certificat racine Azure IoT Edge. N’oubliez pas que vous avez créé les certificats Azure IoT Edge à l’étape 2.
- Si nécessaire, connectez-vous à l’appareil Azure IoT Edge.
- Recherchez le chemin du certificat d’autorité de certification racine de l’appareil IoT Edge et ouvrez-le dans un éditeur de texte. Si vous avez suivi le guide de démarrage rapide, utilisez ensuite les scripts fournis dans le référentiel Git Azure IoT Edge pour créer des certificats de démonstration, le certificat d’autorité de certification racine est nommé azure-iot-test-only.root.ca.cert.pem.
- Ouvrez le certificat d’autorité de certification du locataire Azure Sphere (au format PEM) dans un éditeur de texte. Copiez le contenu et collez-le à la fin du certificat d’autorité de certification racine IoT Edge.
- Enregistrez les modifications apportées au certificat d’autorité de certification racine Azure IoT Edge, puis fermez le fichier.
- Redémarrez l’appareil Azure IoT Edge. Pour un appareil Azure IoT Edge Linux, exécutez :
sudo systemctl restart iotedge
. - Vérifiez que les modules s’exécutent sur votre appareil Azure IoT Edge. Pour un appareil Azure IoT Edge Linux, exécutez :
sudo iotedge list
.
Étape 7. Fournir le certificat d’autorité de certification racine de l’appareil Azure IoT Edge à l’appareil Azure Sphere
Pour vérifier les certificats d’appareil Azure IoT Edge, l’appareil Azure Sphere (l’appareil en aval) doit avoir sa propre copie du certificat d’autorité de certification racine de l’appareil Azure IoT Edge, que vous avez configuré à l’étape 2.
Pour plus d’informations, consultez Connecter un appareil en aval à une passerelle Azure IoT Edge.
Recherchez le certificat racine d’appareil Azure IoT Edge d’origine.
- N’oubliez pas que le certificat racine d’appareil Azure IoT Edge d’origine est celui que vous avez créé à l’étape 2.
- Si vous avez suivi le guide de démarrage rapide, puis utilisé les scripts fournis dans le référentiel Git IoT Edge pour créer des certificats de démonstration, le certificat d’autorité de certification racine est appelé azure-iot-test-only.root.ca.cert.pem.
Copiez le certificat racine Azure IoT Edge sur l’appareil Azure Sphere en l’ajoutant au package d’application.
- Pour obtenir des étapes détaillées, consultez la création du package d’images.
- Consultez la section pour copier des certificats racines sur une machine virtuelle Linux ou sur un ordinateur Windows local.
Étape 8 : Copier le certificat racine IoT sur une machine distante
Procédez comme suit pour copier le certificat racine Azure IoT Edge sur une machine virtuelle Linux distante ou sur une machine Windows locale :
Vous pouvez installer l’outil WinSCP pour transférer les fichiers. L’outil fournit une interface graphique graphique afin qu’il soit plus facile d’utiliser qu’une approche en ligne de commande.
Pour utiliser la ligne de commande, utilisez l’outil en ligne de commande SCP (Copie sécurisée).
Pour transférer un fichier d’un ordinateur Windows local vers une machine virtuelle Linux distante, exécutez la commande suivante dans Windows PowerShell :
powershell -Command scp -r <path-to-file-name> <userName@remote-ip>:<path-to-destination-directory>
Exemple de syntaxe :
scp C:\Documents\cert.pem AzureUser@edgevmname-west.westus22.cloudapp.azure.com:/home/azureUser/test/
Pour transférer un fichier d’une machine virtuelle Linux distante vers un ordinateur Windows local, exécutez la commande suivante dans Windows PowerShell :
powershell -Command scp -r <userName@remote-ip>:<path-to-file-name> <path-to-destination-dir>
Exemple de syntaxe :
scp azureUser@edgevmname-west.westus22.cloudapp.azure.com:/home/azureUser/test/cert.pem C:\Documents\
Dépannage
Si vous rencontrez des problèmes lors de l’exécution d’Azure IoT Edge dans votre environnement, utilisez ces articles pour la résolution des problèmes et les diagnostics :
Résoudre les problèmes de votre appareil IoT Edge (Azure IoT Edge 1.2) ou Azure IoT Edge 1.1
Problèmes courants et résolutions pour Azure IoT Edge (Azure IoT Edge 1.2) ou Azure IoT Edge 1.1