Partage via


Configurer Azure IoT Edge pour Azure Sphere

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 nécessitant 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 différences main sont les suivantes :

  • Le nom du package est passé 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 config était /etc/iotedge/config.yaml. Dans Azure IoT Edge 1.2, le fichier config 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 de cette rubrique terminées, votre appareil Azure Sphere est configuré pour envoyer des données à un Azure IoT Hub via un appareil Azure IoT Edge qui fait office de 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 disposez d’un abonnement Azure.
  • Vous avez créé un Azure IoT Hub instance et provisionné manuellement un appareil. Notez que vous devrez utiliser le certificat d’autorité de certification de catalogue pour le 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

Bien que vous puissiez créer un abonnement Azure gratuitement, le processus d’inscription vous oblige à 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 un Azure IoT Hub instance. Pour éviter des frais mensuels, sélectionnez le niveau Gratuit. Le niveau Gratuit inclut les services requis pour utiliser votre appareil avec un Azure IoT Hub instance, y compris le jumeau d’appareil. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Aperçu

La configuration d’un appareil Azure IoT Edge et sa configuration pour l’utiliser avec un appareil Azure Sphere nécessitent un processus en plusieurs étapes et vous devez planifier environ 8 heures pour suivre 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 catalogue Azure Sphere et 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 la 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 de catalogue 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 de Azure IoT Hub, si ce n’est déjà fait.

Vous pouvez utiliser le service Device Provisioning (DPS) pour provisionner l’appareil Azure IoT Edge. Toutefois, vous ne pouvez pas utiliser DPS pour approvisionner l’appareil Azure Sphere. L’approvisionnement automatique des appareils en aval de l’appareil Azure IoT Edge avec le Azure IoT Hub DPS n’est pas pris en charge.

Vous pouvez suivre les étapes décrites dans le 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 de Azure IoT Hub.

Suivez les étapes décrites dans le guide de démarrage rapide pour :

  • Inscrivez un appareil Azure IoT Edge auprès de votre Azure IoT Hub instance. Ne créez pas de hub IoT dans 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.

Note

Dans le IoT Edge Démarrage rapide, 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 de 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-vous lorsque vous atteignez la section « Ouvrir les 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 avant 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 aurez déjà :

  • Configuration des certificats d’appareil Azure IoT Edge.
  • Déploiement du module Azure IoT Edge Hub.
  • Routage configuré des messages via le IoT Edge Azure.

Dans le cadre de ces étapes, vous aurez également 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ées 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
  • IoT Edge certificat d’autorité de certification 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, suivez 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.

Note

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 Utilisation d’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-vous 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 le hub IoT doit être ouvert pour le trafic entrant provenant 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.

Suivez ces étapes pour ouvrir le port 8883 sur une machine virtuelle Windows après avoir configuré un appareil Edge dans le guide de démarrage rapide :

  1. Si nécessaire, connectez-vous à votre Portail Azure à l’aide de votre compte Azure.
  2. Accédez à la machine virtuelle que vous avez créée dans la section Étape 1 : Créer un appareil Azure IoT Edge.
  3. Dans la section Paramètres à gauche, sélectionnez Mise en réseau, puis Ajouter une règle de port d’entrée.
  4. Dans le panneau Ajouter une règle de port d’entrée , sous Plages de ports de destination, remplacez la valeur par 8883.
  5. Sous Protocole, sélectionnez TCP.
  6. Sous Nom, remplacez la valeur par MQTT.
  7. Conservez tous les autres paramètres 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 :

  1. Exécutez la commande suivante pour case activée si le port pour MQTT est ouvert :

    sudo netstat -lptu

  2. Si nécessaire, utilisez la commande suivante pour ouvrir le port :

    sudo ufw allow 8883

Cette opération définit une règle de sécurité de trafic entrant pour permettre la communication du protocole MQTT vers azure IoT Edge Gateway.

É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 : Mettre à jour le nom d’hôte de la passerelle dans config.toml

Le runtime Azure IoT Edge prend en charge les noms d’hôte de moins de 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 Résolutions d’erreurs courantes.

Suivez ces étapes 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 :

  1. 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 de nom DNS à partir de la page vue d’ensemble.

  2. Si nécessaire, connectez-vous à l’appareil Azure IoT Edge.

  3. Ouvrez le fichier config.toml dans un éditeur de texte.

    /etc/aziot/config.toml

  4. 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>"
    

    Note

    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.

  5. Redémarrez le iotedge démon.

    sudo systemctl restart iotedge

  6. Si vous voyez des erreurs (texte de couleur précédé de « [ERROR] ») dans le status, examinez les journaux de démon pour obtenir des informations détaillées sur les erreurs.

    sudo journalctl -u iotedge --no-pager --no-full

  7. Pour éviter les avertissements, configurez la configuration DNS pour les modules sur l’appareil Azure IoT Edge afin d’inclure un fichier de configuration à l’adresse /etc/docker/daemon.json, par exemple :

    {
         "dns": ["<IP address of your DNS server>"]
    }
    

Azure IoT Edge 1.1 : Mettre à jour le nom d’hôte de la passerelle dans config.yaml

Le runtime Azure IoT Edge prend en charge les noms d’hôte de moins de 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 Résolutions d’erreurs courantes.

Suivez ces étapes 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 :

  1. Dans le Portail Azure, accédez à votre machine virtuelle. Copiez la valeur du nom DNS (FQDN de l’ordinateur) à partir de la section Vue d’ensemble .

  2. Si nécessaire, connectez-vous à l’appareil Azure IoT Edge.

  3. Ouvrez le fichier config.yaml dans un éditeur de texte.

    /etc/iotedge/config.yaml

  4. 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"`
    

    Note

    Vous devrez peut-être utiliser le nom d’ordinateur nu 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.

  5. Redémarrez le iotedge démon.

    sudo systemctl restart iotedge

  6. Si vous voyez des erreurs (texte de couleur précédé de « [ERROR] ») dans le status, examinez les journaux de démon pour obtenir des informations détaillées sur les erreurs.

    sudo journalctl -u iotedge --no-pager --no-full

  7. Pour éviter les avertissements, configurez la configuration DNS pour les modules sur l’appareil Azure IoT Edge afin d’inclure un fichier de configuration à l’adresse /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 :

  1. Accédez à l’appareil Azure Sphere qui a été approvisionné manuellement ci-dessus.
  2. Sélectionnez ID de l’appareil.
  3. Sélectionnez l’icône d’engrenage sous Aucun appareil parent.
  4. Sélectionnez l’appareil Azure IoT Edge que vous souhaitez définir comme parent.
  5. Sélectionnez OK, puis Enregistrer.

L’appareil Azure IoT Edge devient maintenant le parent de l’appareil Azure Sphere.

Étape 6. Fournir le certificat d’autorité de certification de catalogue 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 de catalogue.

  1. Si vous ne l’avez pas déjà fait, téléchargez le certificat d’autorité de certification du catalogue. Remarque : vous devez avoir déjà effectué cette opération dans le cadre de la configuration de votre Azure IoT Hub.

    • À partir de l’invite de commandes, connectez-vous avec votre connexion Azure :

      az login
      
    • Téléchargez le certificat d’autorité de certification pour votre catalogue Azure Sphere. Cette commande télécharge le certificat dans un fichier nommé CAcertificate.cer dans le répertoire de travail actuel. Veillez à télécharger le fichier dans un répertoire dans lequel vous disposez d’une autorisation d’écriture, sinon l’opération de téléchargement échoue. Le fichier de sortie doit avoir une extension .cer.

      az sphere ca-certificate download --resource-group MyResourceGroup --catalog MyCatalog --output-file CACertificate.cer
      
  2. Convertissez le certificat d’autorité de certification de catalogue au format PEM. Voici des exemples d’instructions pour convertir le format sur un ordinateur Windows :

    • Recherchez le chemin du certificat sur votre ordinateur, puis double-cliquez sur le certificat pour l’ouvrir.
    • Ouvrez l’onglet Détails et sélectionnez Copier dans un fichier.
    • Dans l’Assistant Exportation de certificat , sélectionnez Suivant.
    • Sélectionnez le format X.509 (CER) codé en base 64, puis sélectionnez Suivant.
    • Entrez le nom de fichier du certificat à exporter, puis sélectionnez Suivant.
    • Sélectionnez Terminer pour terminer l’Assistant.
    • Renommez le fichier de certificat téléchargé pour avoir l’extension de fichier .pem.
  3. Ajoutez le certificat de catalogue 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 IoT Edge appareil et ouvrez-le dans un éditeur de texte. Si vous avez suivi le guide de démarrage rapide, puis utilisé 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 catalogue 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 d’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.

  1. 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 dépôt 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.
  2. Copiez le certificat racine Azure IoT Edge sur l’appareil Azure Sphere en l’ajoutant au package d’application.

Étape 8. Copier le certificat racine IoT sur un ordinateur distant

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 de sorte qu’il est plus facile à utiliser qu’une approche en ligne de commande.

  • Pour utiliser la ligne de commande, utilisez l’outil en ligne de commande SCP (Secure Copy).

  • 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 résoudre les problèmes et diagnostics :

Étapes suivantes

  • Une fois les étapes de cette rubrique terminées, vous pouvez exécuter l’exemple Azure IoT en suivant les instructions de connexion à l’aide d’Azure IoT Edge.