Eseguire la migrazione dei dispositivi a hub IoT di Azure

Se si decide di eseguire la migrazione da una soluzione basata su IoT Central a una soluzione basata su hub IoT, è necessario modificare la configurazione di tutti i dispositivi attualmente connessi all'applicazione. Lo strumento Di migrazione IoTC automatizza questo processo di migrazione dei dispositivi.

Lo strumento migratorio:

  • Crea registrazioni dei dispositivi nell'hub IoT per i dispositivi che attualmente si connettono all'applicazione IoT Central.
  • Usa un comando per inviare l'ambito ID dell'istanza del servizio Device Provisioning (DPS) associato all'hub IoT ai dispositivi.

Lo strumento richiede ai dispositivi connessi di implementare un comando DeviceMove definito nel modello di dispositivo nell'applicazione IoT Central. Il payload del comando è l'ambito ID dell'istanza del servizio Device Provisioning di destinazione. Quando un dispositivo riceve questo comando, deve:

  • Interrompere l'invio dei dati di telemetria e la disconnessione dall'applicazione IoT Central.
  • Effettuare il provisioning con DPS usando il nuovo ambito ID nel payload del comando.
  • Usare il risultato del provisioning per connettersi all'hub IoT di destinazione e iniziare a inviare di nuovo i dati di telemetria.

Suggerimento

È anche possibile usare lo strumento di migrazione per eseguire la migrazione dei dispositivi tra applicazioni IoT Cental o da un hub IoT a un'applicazione IoT Central.

Prerequisiti

Per completare i passaggi di migrazione dei dispositivi sono necessari i prerequisiti seguenti:

  • Applicazione IoT Central di origine in cui si connettono i dispositivi.
  • Hub IoT di destinazione in cui si vogliono spostare i dispositivi. Questo hub IoT deve essere collegato a un'istanza del servizio Device Provisioning.
  • node.js e npm installati nel computer locale in cui si esegue lo strumento di migrazione.

Requisiti dei dispositivi

I dispositivi di cui si vuole eseguire la migrazione devono implementare il comando DeviceMove in un componente denominato migrazione. Il payload del comando contiene l'ambito ID dell'istanza del servizio Device Provisioning di destinazione. Il repository degli strumenti di migrazione include un modello di componente DTDL di esempio che definisce il comando DeviceMove. È possibile aggiungere questo componente ai modelli di dispositivo esistenti.

Lo strumento presuppone che il nome del componente sia migration e che l'ID interfaccia sia dtmi:azureiot:DeviceMigration;1:

Screenshot that highlights the component name and interface ID.

Il repository degli strumenti include anche codice di esempio che mostra come un dispositivo deve implementare il comando DeviceMove .

Configurazione degli strumenti

Completare le attività di configurazione seguenti per prepararsi per la migrazione:

Applicazione Microsoft Entra

Lo strumento di migrazione richiede una registrazione dell'applicazione Microsoft Entra per abilitarla per l'autenticazione con la sottoscrizione di Azure:

  1. Passare a portale di Azure microsoft > Entra ID > Registrazioni app.

  2. Seleziona Nuova registrazione.

  3. Immettere un nome, ad esempio "App migratrice IoTC".

  4. Selezionare Account in qualsiasi directory organizzativa (qualsiasi directory Di Microsoft Entra - Multi-tenant) e account Microsoft personali (ad esempio Skype, Xbox).

  5. Selezionare Applicazione a pagina singola (SPA).

  6. Immettere http://localhost:3000 come URI di reindirizzamento. Questo valore viene aggiunto alla configurazione dell'app migratrice in un secondo momento.

  7. Selezionare Registra.

  8. Prendere nota dei valori ID applicazione (client) e ID directory (tenant). Questi valori vengono usati in un secondo momento per configurare l'app migratrice:

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

  9. Passare alla pagina Manifesto nella registrazione e sostituire il contenuto di requiredResourceAccess con la configurazione seguente:

    [
      {
        "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. Salvare le modifiche.

Aggiungere le chiavi del dispositivo al servizio Device Provisioning

Aggiungere le chiavi di firma di accesso condiviso o i certificati X.509 dall'applicazione IoT Central al gruppo di allocazione dps.

Se i dispositivi usano firme di accesso condiviso per l'autenticazione nell'applicazione IoT Central:

  • Nell'applicazione IoT Central passare a Autorizzazioni Gruppi >di connessioni del dispositivo.
  • Selezionare il gruppo di registrazione usato dai dispositivi.
  • Prendere nota delle chiavi primarie e secondarie.
  • Nella portale di Azure passare all'istanza del servizio Device Provisioning.
  • Selezionare Gestisci registrazioni.
  • Creare una nuova registrazione e impostare il tipo di attestazione su Chiave simmetrica, deselezionare Genera chiavi automaticamente e quindi aggiungere le chiavi primarie e secondarie di cui si è preso nota.
  • Seleziona Salva.

Se i dispositivi usano certificati X.509 per l'autenticazione nell'applicazione IoT Central:

  • Nella portale di Azure passare all'istanza del servizio Device Provisioning.
  • Selezionare Certificati e quindi Aggiungi.
  • Caricare e verificare i certificati X.509 radice o intermedi usati nell'applicazione IoT Central.
  • Selezionare Gestisci registrazioni.
  • Creare una nuova registrazione e impostare il tipo di attestazione su Certificato, quindi selezionare i certificati primari e secondari caricati.
  • Seleziona Salva.

Scaricare e configurare lo strumento migratorio

Scaricare o clonare una copia dello strumento di migrazione nel computer locale:

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

Nella radice del repository scaricato creare un file con estensione env . Aggiornare i REACT_APP_AAD_APP_CLIENT_IDvalori , REACT_APP_AAD_APP_TENANT_IDe REACT_APP_AAD_APP_REDIRECT_URI con i valori della registrazione dell'applicazione Microsoft Entra creata in precedenza. Salvare quindi le modifiche:

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

Suggerimento

Assicurarsi che corrisponda all'URI REACT_APP_AAD_APP_REDIRECT_URI di reindirizzamento usato nella registrazione dell'applicazione Microsoft Entra.

Nell'ambiente della riga di comando passare alla radice del iotc-migrator repository. Eseguire quindi i comandi seguenti per installare i pacchetti node.js necessari e quindi eseguire lo strumento:

npm install
npm start

Dopo l'avvio dell'app migratrice, passare a http://localhost:3000 per visualizzare lo strumento. Accedere quando viene richiesto di eseguire l'accesso.

Eseguire la migrazione dei dispositivi

Usare lo strumento per eseguire la migrazione dei dispositivi in batch. Immettere i dettagli della migrazione nella pagina Nuova migrazione :

  1. Immettere un nome per la migrazione.
  2. Selezionare un gruppo di dispositivi dall'applicazione IoT Central.
  3. Selezionare un modello di dispositivo che include la definizione del comando DeviceMove .
  4. Selezionare Sposta nel proprio hub IoT di Azure.
  5. Selezionare l'istanza dps collegata all'hub IoT di destinazione.
  6. Seleziona Esegui la migrazione. Lo strumento richiede di copiare le chiavi dall'applicazione IoT Central al gruppo di registrazione DPS. Questo passaggio è stato completato in precedenza nel passaggio Aggiungere le chiavi del dispositivo al servizio Device Provisioning .

Screenshot of migration tool that shows the migration definition.

Lo strumento registra ora tutti i dispositivi connessi che corrispondono al filtro del dispositivo di destinazione nell'hub IoT di destinazione. Lo strumento crea quindi un processo nell'applicazione IoT Central per chiamare il metodo DeviceMove in tutti i dispositivi. Il payload del comando contiene l'ambito ID dell'istanza del servizio Device Provisioning di destinazione.

Verificare la migrazione

Usare la pagina Stato migrazione nello strumento di migrazione per monitorare lo stato di avanzamento:

Screenshot that shows the migration status page in the tool.

Selezionare un processo nella pagina Stato della migrazione per visualizzare lo stato del processo nell'applicazione IoT Central. Usare questa pagina per visualizzare lo stato dei singoli dispositivi nel processo:

Screenshot showing completed migration status for IoT Central job.

Dispositivi di cui è stata eseguita la migrazione:

  • Mostra come Disconnesso nella pagina Dispositivi nell'applicazione IoT Central.

  • Visualizzare come registrato ed eseguito il provisioning nell'hub IoT:

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

  • Ora inviano dati di telemetria all'hub IoT

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

Passaggi successivi

Ora che si è appreso come eseguire la migrazione dei dispositivi da un'applicazione IoT Central a un hub IoT, un passaggio successivo consigliato consiste nell'apprendere come monitorare hub IoT di Azure.