Migrer des appareils vers Azure IoT Hub

Si vous décidez de migrer d’une solution IoT Central vers une solution Hub IoT, vous devez modifier la configuration de tous les appareils actuellement connectés à votre application. L’outil IoTC Migrate automatise ce processus de migration d’appareil.

Outil de migration :

  • Crée des inscriptions d’appareils dans votre hub IoT pour les appareils qui se connectent actuellement à votre application IoT Central.
  • Utilise une commande pour envoyer l’étendue d’ID de l’instance de provisionnement des appareils (DPS, Device Provisioning Service) associée à votre hub IoT à vos appareils.

L’outil nécessite que vos appareils connectés implémentent une commande DeviceMove définie dans le modèle d’appareil dans votre application IoT Central. La charge utile de commande est l’étendue d’ID de l’instance DPS cible. Lorsqu’un appareil reçoit cette commande, il doit :

  • Arrêter l’envoi de données de télémétrie et se déconnecter de l’application IoT Central.
  • S’approvisionner avec le DPS à l’aide de la nouvelle étendue d’ID dans la charge utile de commande.
  • Utiliser le résultat d’approvisionnement pour se connecter au hub IoT de destination et commencer à envoyer de nouveau des données de télémétrie.

Conseil

Vous pouvez également utiliser l’outil de migration pour migrer des appareils entre des applications IoT Central ou d’un hub IoT vers une application IoT Central.

Réduire les interruptions

Pour réduire le nombre d’interruptions, vous pouvez effectuer la migration de vos appareils en plusieurs phases. L’outil de migration utilise des groupes d’appareils pour déplacer les appareils d’IoT Central vers votre instance IoT Hub. Divisez votre parc d’appareils en groupes d’appareils (par exemple, les appareils situés au Texas, à New York et dans le reste des États-Unis). Ensuite, effectuez la migration de groupe d’appareils indépendamment.

Avertissement

Vous ne pouvez pas ajouter d’appareils non affectés à un groupe d’appareils. Par conséquent, vous ne pouvez actuellement pas utiliser l’outil de migration pour migrer des appareils non affectés.

Réduisez l’impact sur l’entreprise en effectuant les étapes suivantes :

  • Créez la solution PaaS et exécutez-la parallèlement à l’application IoT Central.

  • Configurez l’exportation de données en continu dans l’application IoT Central ainsi que les routes appropriées vers l’instance IoT Hub de la solution PaaS. Transformez les deux canaux de données et stockez les données dans le même lac de données.

  • Effectuez la migration des appareils en plusieurs phases et vérifiez-la à chaque phase. Si un événement ne se passe pas comme prévu, replacez les appareils dans IoT Central.

  • Une fois que vous aurez déplacé tous les appareils vers la solution PaaS et exporté l’intégralité de vos données à partir d’IoT Central, vous pourrez supprimer les appareils de la solution IoT Central.

Après la migration, les appareils ne sont pas automatiquement supprimés de l’application IoT Central. Ces appareils continuent d’être facturés comme des frais IoT Central. Ceci est valable pour tous les appareils provisionnés dans l’application. Lorsque vous supprimez ces appareils de l’application IoT Central, ils ne vous serons plus facturés. Vous pouvez alors supprimer l’application IoT Central.

Déplacer des données existantes à partir d’IoT Central

Vous pouvez configurer IoT Central pour exporter en continu les données de télémétrie et les valeurs de propriété. Les destinations d’exportation sont des magasins de données comme des webhooks, Azure Data Lake ou Event Hubs. Vous pouvez exporter des modèles d’appareil à l’aide de l’interface utilisateur IoT Central ou de l’API REST. L’API REST vous permet d’exporter les utilisateurs vers une application IoT Central.

Prérequis

Pour effectuer les étapes de migration de l’appareil, vous avez besoin des prérequis suivants :

  • Application IoT Central source dans laquelle vos appareils se connectent actuellement.
  • Hub IoT de destination vers lequel vous souhaitez déplacer les appareils. Ce hub IoT doit être lié à une instance DPS.
  • node.js et npm installés sur l’ordinateur local où vous exécutez l’outil de migration.

Exigences relatives aux appareils

Les appareils que vous souhaitez migrer doivent implémenter la commande DeviceMove dans un composant appelé migration. La charge utile de commande contient l’étendue d’ID de l’instance DPS de destination. Le dépôt d’outils de migration inclut un exemple de modèle de composant DTDL qui définit la commande DeviceMove. Vous pouvez ajouter ce composant à vos modèles d’appareil existants.

L’outil suppose que le nom du composant est migration et que l’ID d’interface est dtmi:azureiot:DeviceMigration;1 :

Screenshot that highlights the component name and interface ID.

Le référentiel d’outils inclut également un exemple de code qui vous montre comment un appareil doit implémenter la commande DeviceMove .

Configuration de l’outil

Effectuez les tâches d’installation suivantes pour préparer la migration :

Application Microsoft Entra

L’outil de migration nécessite une inscription d’application Microsoft Entra pour lui permettre de s’authentifier avec votre abonnement Azure :

  1. Accédez au portail Azure> Microsoft Entra ID > Inscriptions d’applications.

  2. Sélectionnez Nouvelle inscription.

  3. Entrez un nom tel que « Application Migration IoTC ».

  4. Sélectionnez des comptes dans n’importe quel annuaire d’organisation (n’importe quel annuaire Microsoft Entra – Multilocataire) et des comptes Microsoft personnels (par exemple Skype, Xbox).

  5. Sélectionnez Application monopage (SPA).

  6. Entrezhttp://localhost:3000 en tant qu’URI de redirection. Vous ajouterez cette valeur à la configuration de l’application de migration ultérieurement.

  7. Sélectionnez Inscription.

  8. Notez les valeurs de l’ID d’application (client) et l’ID de répertoire (locataire). Vous utilisez ces valeurs ultérieurement pour configurer l’application migration :

    Screenshot that shows the Microsoft Entra application in the Azure portal.

  9. Accédez à la page Manifeste dans l’inscription et remplacez le contenu de requiredResourceAccess par la configuration suivante :

    [
      {
        "resourceAppId": "9edfcdd9-0bc5-4bd4-b287-c3afc716aac7",
        "resourceAccess": [
          {
            "id": "73792908-5709-46da-9a68-098589599db6",
            "type": "Scope"
          }
        ]
      },
      {
        "resourceAppId": "797f4846-ba00-4fd7-ba43-dac1f8f63013",
        "resourceAccess": [
          {
            "id": "41094075-9dad-400e-a0bd-54e686782033",
            "type": "Scope"
          }
        ]
      },
      {
        "resourceAppId": "00000003-0000-0000-c000-000000000000",
        "resourceAccess": [
          {
            "id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d",
            "type": "Scope"
          }
        ]
      }
    ]
    
  10. Enregistrez les modifications.

Ajouter les clés d’appareil à DPS

Ajoutez les clés de signature d’accès partagé ou les certificats X.509 de votre application IoT Central à votre groupe d’allocation DPS.

Si vos appareils utilisent des signatures d’accès partagé pour s’authentifier auprès de votre application IoT Central :

  • Dans votre application IoT Central, accédez à Autorisations > Groupes de connexions d’appareil.
  • Sélectionnez le groupe d’inscription que vos appareils utilisent.
  • Notez les clés primaires et secondaires.
  • Dans le portail Azure, accédez à votre instance DPS.
  • Sélectionnez Gérer les inscriptions.
  • Créez une inscription et définissez le type d’attestation sur Clé symétrique, désélectionnez les clés de génération automatique, puis ajoutez les clés primaires et secondaires que vous avez notées.
  • Sélectionnez Enregistrer.

Si vos appareils utilisent des certificats X.509 pour s’authentifier auprès de votre application IoT Central :

  • Dans le portail Azure, accédez à votre instance DPS.
  • Sélectionnez Certificats, puis Ajouter.
  • Chargez et vérifiez les certificats X.509 racine ou intermédiaire que vous utilisez dans votre application IoT Central.
  • Sélectionnez Gérer les inscriptions.
  • Créez une inscription et définissez le type d’attestation sur Certificat, puis sélectionnez les certificats principaux et secondaires que vous avez chargés.
  • Sélectionnez Enregistrer.

Télécharger et configurer l’outil de migration

Téléchargez ou clonez une copie de l’outil de migration sur votre ordinateur local :

git clone https://github.com/Azure/iotc-migrator.git

À la racine du référentiel téléchargé, créez un fichier .env. Mettez à jour les valeurs de REACT_APP_AAD_APP_CLIENT_ID, REACT_APP_AAD_APP_TENANT_ID et REACT_APP_AAD_APP_REDIRECT_URI avec les valeurs provenant de l’inscription d’application Microsoft Entra que vous avez créée précédemment. Enregistrez les modifications :

PORT=3000
REACT_APP_AAD_APP_CLIENT_ID=<your-AAD-Application-(client)-ID>
REACT_APP_AAD_APP_TENANT_ID=<your-AAD-Directory-(tenant)-ID>
REACT_APP_AAD_APP_REDIRECT_URI=http://localhost:3000

Conseil

Vérifiez que le REACT_APP_AAD_APP_REDIRECT_URI correspond à l’URI de redirection que vous avez utilisé dans votre inscription d’application Microsoft Entra.

Dans votre environnement de ligne de commande, accédez à la racine du iotc-migrator référentiel. Exécutez ensuite les commandes suivantes pour installer les packages de node.js requis, puis exécutez l’outil :

npm install
npm start

Une fois l’application migration démarrée, accédez à http://localhost:3000pour afficher l’outil. Inscrivez-vous lorsque l’invite s’affiche.

Migrez les appareils

Utilisez l’outil pour migrer vos appareils par lots. Entrez les détails de la migration dans la page Nouvelle migration :

  1. Entrez un nom pour la migration.
  2. Sélectionnez un groupe d’appareils dans votre application IoT Central.
  3. Sélectionnez un modèle d’appareil qui inclut la définition de commande DeviceMove .
  4. Sélectionnez Déplacer vers votre propre Azure IoT Hub.
  5. Sélectionnez l’instance DPS liée à votre hub IoT cible.
  6. Sélectionnez Migrer. L’outil vous invite à copier les clés de votre application IoT Central vers le groupe d’inscription DPS. Vous avez précédemment exécuté cette action à l’étape Ajouter les clés d’appareil à DPS.

Screenshot of migration tool that shows the migration definition.

L’outil enregistre désormais tous les appareils connectés qui correspondent au filtre d’appareil cible dans le hub IoT de destination. L’outil crée ensuite un travail dans votre application IoT Central pour appeler la méthode DeviceMove sur tous ces appareils. La charge utile de commande contient l’étendue d’ID de l’instance DPS de destination.

Vérifier la migration

Utilisez la page État de la migration dans l’outil de migration pour surveiller la progression :

Screenshot that shows the migration status page in the tool.

Sélectionnez un travail sur la page de l’état de migration pour afficher l’état du travail dans votre application IoT Central. Utilisez cette page pour afficher l’état des appareils individuels dans le travail :

Screenshot showing completed migration status for IoT Central job.

Les appareils qui ont migré avec succès :

  • Apparaissent comme déconnecté sur la page appareils de votre application IoT Central.

  • Apparaissent comme inscrit et approvisionné dans votre ioT Hub :

    Screenshot of IoT Hub in the Azure portal that shows the provisioned devices.

  • Envoient maintenant des données de télémétrie à votre hub IoT

    Screenshot of IoT Hub in the Azure portal that shows telemetry metrics for the migrated devices.