Migración de dispositivos a Azure IoT Hub

Si decide migrar de una solución basada en IoT Central a una solución basada en IoT Hub, debe cambiar la configuración de todos los dispositivos conectados actualmente a la aplicación. La herramienta IoTC Migrator automatiza este proceso de migración de dispositivos.

La herramienta Migrator:

  • Crea registros de dispositivos en el centro de IoT para los dispositivos que se conectan actualmente a la aplicación de IoT Central.
  • Usa un comando para enviar el ámbito de identificador de la instancia de Device Provisioning Service (DPS) asociada con el centro de IoT a los dispositivos.

La herramienta requiere que los dispositivos conectados implementen un comando DeviceMove definido en la plantilla de dispositivo de la aplicación de IoT Central. La carga del comando es el ámbito de identificador de la instancia de DPS de destino. Cuando un dispositivo recibe este comando, debe:

  • Detener el envío de telemetría y realizar la desconexión de la aplicación de IoT Central.
  • Aprovisionarse a sí mismo con DPS mediante el nuevo ámbito de identificador en la carga del comando.
  • Usar el resultado del aprovisionamiento para conectarse al centro de IoT de destino y empezar a enviar telemetría de nuevo.

Sugerencia

También puede usar la herramienta de migración para migrar dispositivos entre aplicaciones de IoT Cental o desde un centro de IoT a una aplicación de IoT Central.

Minimización de interrupciones

Para minimizar las interrupciones, puede migrar los dispositivos en fases. La herramienta de migración usa grupos de dispositivos para mover dispositivos desde IoT Central a IoT Hub. Divida la flota de dispositivos en grupos de dispositivos, como dispositivos de Texas, dispositivos de Nueva York y dispositivos del resto de Estados Unidos. A continuación, migre cada grupo de dispositivos de forma independiente.

Advertencia

No puede agregar dispositivos sin asignar a un grupo de dispositivos. Por lo tanto, actualmente no se puede usar la herramienta de migración para mover los dispositivos sin asignar.

Minimice el impacto empresarial siguiendo estos pasos:

  • Cree la solución PaaS y ejecútela en paralelo con la aplicación IoT Central.

  • Configure la exportación de datos continua en la aplicación IoT Central y las rutas adecuadas hacia el centro de IoT de la solución PaaS. Transforme ambos canales de datos y almacene los datos en el mismo lago de datos.

  • Migre los dispositivos en fases y realice comprobaciones en cada fase. Si algo no va según lo planeado, conmute los dispositivos por error a IoT Central.

  • Cuando haya migrado todos los dispositivos a la solución PaaS y haya exportado completamente los datos de IoT Central, puede quitar los dispositivos de la solución IoT Central.

Después de la migración, los dispositivos no se eliminan automáticamente de la aplicación IoT Central. Estos dispositivos se siguen facturando como cargos de IoT Central para todos los dispositivos aprovisionados en la aplicación. Cuando se quitan estos dispositivos de la aplicación IoT Central, ya no se le facturarán. Finalmente, quite la aplicación IoT Central.

Traslado de datos existentes desde IoT Central

Puede configurar IoT Central para exportar continuamente los valores de propiedad y telemetría. Los destinos de exportación son almacenes de datos como Azure Data Lake, Event Hubs y Webhooks. Puede exportar plantillas de dispositivo mediante la interfaz de usuario de IoT Central o la API de REST. La API de REST le permite exportar los usuarios en una aplicación IoT Central.

Requisitos previos

Necesita los siguientes requisitos previos para completar los pasos de la migración de dispositivos:

Requisitos del dispositivo

Los dispositivos que quiera migrar deben implementar el comando DeviceMove en un componente denominado migration. La carga del comando contiene el ámbito de identificador de la instancia de DPS de destino. El repositorio de la herramienta migratoria incluye un modelo de componente DTDL de ejemplo que define el comando DeviceMove. Puede agregar este componente a las plantillas de dispositivo existentes.

La herramienta da por hecho que el nombre del componente es migration y que el id. de interfaz es dtmi:azureiot:DeviceMigration;1:

Screenshot that highlights the component name and interface ID.

El repositorio de herramientas también incluye código de ejemplo que muestra cómo un dispositivo debe implementar el comando DeviceMove.

Configuración de la herramienta

Complete las siguientes tareas de configuración para prepararse para la migración:

Aplicación de Microsoft Entra

La herramienta migratoria requiere un registro de la aplicación Microsoft Entra para poder autenticarse con su suscripción Azure:

  1. Navegue aAzure portal > Microsoft Entra ID > Registros de aplicaciones.

  2. Seleccione Nuevo registro.

  3. Escriba un nombre como "Aplicación IoTC Migrator".

  4. Seleccione Cuentas en cualquier directorio de la organización (Cualquier directorio de Microsoft Entra - multi inquilino) y las cuentas personales de Microsoft (por ejemplo, Skype, Xbox).

  5. Seleccione Aplicación de página única (SPA).

  6. Escriba http://localhost:3000 como URI de redireccionamiento. Debe agregar este valor a la configuración de la aplicación de migración más adelante.

  7. Seleccione Registrar.

  8. Anote los valores Id. de aplicación (cliente) e Id. de directorio (inquilino). Estos valores se usan más adelante para configurar la aplicación Migrator:

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

  9. Vaya a la página Manifiesto del registro y reemplace el contenido de requiredResourceAccess por la configuración siguiente:

    [
      {
        "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. Guarde los cambios.

Incorporación de las claves de dispositivo a DPS

Agregue las claves de firma de acceso compartido o los certificados X.509 de la aplicación de IoT Central al grupo de asignación de DPS.

Si los dispositivos usan firmas de acceso compartido para autenticarse en la aplicación de IoT Central:

  • En la aplicación de IoT Central, vaya a Permisos > Grupos de conexión de dispositivos.
  • Seleccione el grupo de inscripción que usan los dispositivos.
  • Anote las claves principal y secundaria.
  • En Azure Portal, vaya a su instancia de DPS.
  • Seleccione Administrar inscripciones.
  • Cree una inscripción y establezca el tipo de atestación en Clave simétrica, anule la selección de Generar claves automáticamente y agregue las claves principal y secundaria que anotó.
  • Seleccione Guardar.

Si los dispositivos usan certificados X.509 para autenticarse en la aplicación de IoT Central:

  • En Azure Portal, vaya a su instancia de DPS.
  • Seleccione Certificados y después seleccione Agregar.
  • Cargue y compruebe los certificados X.509 raíz o intermedio que usa en la aplicación de IoT Central.
  • Seleccione Administrar inscripciones.
  • Cree una inscripción y establezca el tipo de atestación en Certificado y, a continuación, seleccione los certificados principal y secundario que cargó.
  • Seleccione Guardar.

Descarga y configuración de la herramienta Migrator

Descargue o clone una copia de la herramienta Migrator en la máquina local:

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

En la raíz del repositorio descargado, cree un archivo .env. Actualice los valores REACT_APP_AAD_APP_CLIENT_ID, REACT_APP_AAD_APP_TENANT_ID y REACT_APP_AAD_APP_REDIRECT_URI con los valores del registro de la aplicación Microsoft Entra que creó anteriormente. Guarde los cambios:

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

Sugerencia

Asegúrese de que REACT_APP_AAD_APP_REDIRECT_URI coincide con el URI de redirección que utilizó en el registro de su aplicación Microsoft Entra.

En el entorno de la línea de comandos, vaya a la raíz del repositorio iotc-migrator. A continuación, ejecute los siguientes comandos para instalar los paquetes de node.js necesarios y, a continuación, ejecute la herramienta:

npm install
npm start

Una vez iniciada la aplicación de Migrator, vaya a http://localhost:3000 para ver la herramienta. Inicie sesión cuando se le solicite.

Migración de dispositivos

Use la herramienta para migrar los dispositivos en lotes. Escriba los detalles de la migración en la página Nueva migración:

  1. Escriba un nombre para la migración.
  2. Seleccione un grupo de dispositivos de la aplicación de IoT Central.
  3. Seleccione una plantilla de dispositivo que incluya la definición del comando DeviceMove.
  4. Seleccione Mover a su propia instancia de Azure IoT Hub.
  5. Seleccione la instancia de DPS vinculada al centro de IoT de destino.
  6. Seleccione Migrar. La herramienta le pide que copie las claves de la aplicación de IoT Central en el grupo de inscripción de DPS. Anteriormente completó esto en el paso Agregar las claves de dispositivo a DPS.

Screenshot of migration tool that shows the migration definition.

La herramienta ahora registra todos los dispositivos conectados que coinciden con el filtro de dispositivo de destino del centro de IoT de destino. A continuación, la herramienta crea un trabajo en la aplicación de IoT Central para llamar al método DeviceMove en todos esos dispositivos. La carga del comando contiene el ámbito de identificador de la instancia de DPS de destino.

Comprobación de la migración

Use la página Estado de migración en la herramienta de migración para supervisar el progreso:

Screenshot that shows the migration status page in the tool.

Seleccione un trabajo en la página Estado de migración para ver el estado del trabajo en la aplicación de IoT Central. Use esta página para ver el estado de los dispositivos individuales en el trabajo:

Screenshot showing completed migration status for IoT Central job.

Dispositivos que se migraron correctamente:

  • Se muestran como Desconectado en la página de dispositivos de la aplicación de IoT Central.

  • Se muestran como registrado y aprovisionado en el centro de IoT:

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

  • Ahora está enviando telemetría al centro de IoT

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