Reaprovisionamiento de dispositivos

Durante el ciclo de vida de una solución de IoT, es habitual mover los dispositivos entre centros de IoT. Este tema se ha escrito para ayudar a los operadores de soluciones a configurar las directivas de reaprovisionamiento.

Para una descripción más detallada de los escenarios de reaprovisionamiento, consulte Conceptos sobre el reaprovisionamiento de dispositivos de IoT Hub.

Establecimiento de la directiva de reaprovisionamiento

Los pasos siguientes configuran la directiva de reaprovisionamiento para una inscripción individual o un grupo de inscripción:

  1. Inicie sesión en Azure Portal y vaya a la instancia de Device Provisioning Service.

  2. Seleccione Administrar inscripciones y, a continuación, seleccione las pestañas Grupos de inscripción o Inscripciones individuales.

  3. Seleccione el nombre del grupo de inscripción o la inscripción individual que desea configurar para el reaprovisionamiento.

  4. Use el menú desplegable en Directiva de reaprovisionamiento para elegir una de las siguientes directivas de reaprovisionamiento:

    • Nunca vuelva a aprovisionar el dispositivo.

    • Volver a aprovisionar el dispositivo y restablecer el estado inicial: esta directiva realiza acciones cuando los dispositivos asociados a la entrada de inscripción envían una nueva solicitud de aprovisionamiento. Según la configuración de la entrada de inscripción, el dispositivo se puede reasignar a otro centro de IoT. Si el dispositivo cambia a los centros de IoT, se quitará el registro de dispositivos con el centro de IoT inicial. Se proporcionan al nuevo centro de IoT los datos de configuración iniciales que recibió la instancia del servicio de aprovisionamiento al aprovisionar el dispositivo. Durante la migración, el estado del dispositivo será Assigning (Asignando).

    • Volver a aprovisionar el dispositivo y migrar el estado actual: esta directiva realiza acciones cuando los dispositivos asociados a la entrada de inscripción envían una nueva solicitud de aprovisionamiento. Según la configuración de la entrada de inscripción, el dispositivo se puede reasignar a otro centro de IoT. Si el dispositivo cambia a los centros de IoT, se quitará el registro de dispositivos con el centro de IoT inicial. Toda la información sobre el estado del dispositivo de ese centro de IoT inicial se migrará al nuevo centro de IoT. Durante la migración, el estado del dispositivo será Assigning (Asignando).

  5. Seleccione Guardar para permitir el reaprovisionamiento del dispositivo en función de los cambios.

Configuración de la directiva de asignación de inscripciones

La directiva de asignación determina cómo se asignarán los dispositivos asociados con la inscripción a un centro de IoT, una vez aprovisionados. Para más información sobre las directivas de asignación, consulte Uso de directivas de asignación.

En los pasos siguientes se configura la directiva de asignación para la inscripción de un dispositivo:

  1. Inicie sesión en Azure Portal y vaya a la instancia de Device Provisioning Service.

  2. Seleccione Administrar inscripciones y, a continuación, seleccione las pestañas Grupos de inscripción o Inscripciones individuales.

  3. Seleccione el nombre del grupo de inscripción o la inscripción individual que desea configurar para el reaprovisionamiento.

  4. En la página Detalles de la inscripción, seleccione la pestaña Centros de IoT.

  5. Seleccione una de las siguientes directivas de asignación:

    • Estático: esta directiva requiere que se muestre un centro de IoT deseado en la entrada de inscripción para que se aprovisione un dispositivo. Esta directiva permite designar un único centro de IoT al que quiere asignar los dispositivos.

    • Distribución ponderada uniformemente: esta directiva distribuye los dispositivos entre los centros de IoT en función del peso de asignación configurado en cada centro de IoT. Es más probable que se asignen los centros de IoT con un mayor peso de asignación. Si va a aprovisionar dispositivos en un único centro de IoT, se recomienda esta configuración. Esta es la configuración predeterminada.

    • Latencia más baja: esta directiva asigna dispositivos al centro de IoT que dará lugar a comunicaciones de latencia más baja entre el dispositivo y el centro de IoT. Esta opción permite que el dispositivo se comunique con el centro de IoT más cercano en función de la ubicación.

    • Personalizado (use Azure Function): esta directiva usa un webhook personalizado hospedado en Azure Functions para asignar dispositivos a uno o varios centros de IoT. Las directivas de asignación personalizadas ofrece más control sobre la forma en que se asignan los dispositivos a los centro de IoT. Para más información, consulte Descripción de las directivas de asignación personalizadas.

  6. En Centros de IoT de destino, seleccione los centros de IoT vinculados que quiera incluir en la directiva de asignación. Opcionalmente, agregue un nuevo centro de IoT vinculado mediante el botón Agregar vínculo a IoT Hub .

    • Con la directiva de asignación Static configuration (Configuración estática), seleccione el centro de IoT al que quiere que se asignen los dispositivos.

    • Con la directiva de asignación Distribución ponderada uniformemente, se repartirán con hash los dispositivos entre los centros de IoT que seleccione en función de los pesos de asignación configurados.

    • Con la directiva de asignación Latencia más baja, los centros de IoT que seleccione se incluirán en la evaluación de la latencia para determinar el centro de IoT más próximo para la asignación de dispositivos.

    • Con la directiva de asignación Personalizada, seleccione los centros de IoT que quiere evaluar para su asignación mediante el webhook de asignación personalizado.

  7. Seleccione Guardar.

Envío de una solicitud de aprovisionamiento desde el dispositivo

Para que los dispositivos se reaprovisionen según los cambios de configuración realizados en las secciones anteriores, estos dispositivos deben solicitar el reaprovisionamiento.

La frecuencia con la que un dispositivo envía una solicitud de aprovisionamiento depende del escenario. Al diseñar la solución y definir una lógica de reaprovisionamiento, hay algunas cosas que se deben tener en cuenta. Por ejemplo:

  • Frecuencia con la que espera que se reinicien los dispositivos
  • Las cuotas y límites de DPS
  • Tiempo de implementación esperado para la flota (lanzamiento por fases frente a todos a la vez)
  • Capacidad de reintento implementada en el código de cliente, como se describe en la Orientación general sobre reintentos en el Centro de arquitectura de Azure

Sugerencia

Se recomienda no aprovisionar en cada reinicio del dispositivo, ya que esto podría provocar que se llegase a los límites del servicio, especialmente al volver a aprovisionar varios miles o millones de dispositivos a la vez. En su lugar, debe intentar usar la API Device Registration Status Lookup e intentar conectarse con esa información a IoT Hub. Si se produce un error, intente volver a aprovisionar, ya que la información de IoT Hub podría haber cambiado. Tenga en cuenta que la consulta del estado de registro contará como un nuevo registro de dispositivos, por lo que debe tener en cuenta el límite de registro de dispositivos. Considere también la posibilidad de implementar una lógica de reintento adecuada, como un retroceso exponencial con selección aleatoria, como se describe en la Orientación general sobre reintentos. En algunos casos, en función de las funcionalidades del dispositivo, es posible guardar la información de IoT Hub directamente en el dispositivo para conectarse directamente a IoT Hub después de que se produjese el aprovisionamiento por primera vez mediante DPS. Si decide hacerlo, asegúrese de implementar un mecanismo de reserva en caso de que se produzcan errores específicos del centro, por ejemplo, tenga en cuenta los siguientes escenarios:

  • Vuelva a intentar la operación del centro si el código de resultado es 429 (demasiadas solicitudes) o un error en el rango 5xx. No lo intente de nuevo para cualquier otro error.
  • En el caso de los errores 429, inténtelo de nuevo después de la hora indicada en el encabezado Retry-After.
  • En el caso de los errores 5xx, use el retroceso exponencial, con el primer reintento al menos 5 segundos después de la respuesta.
  • Si hay errores distintos de 429 y 5xx, vuelva a registrarse a través de DPS
  • Lo ideal es que también admita un método para desencadenar manualmente el aprovisionamiento a petición.

También se recomienda tener en cuenta los límites de servicio al planear actividades, como insertar actualizaciones en la flota. Por ejemplo, la actualización de la flota a la vez podría hacer que todos los dispositivos se vuelvan a registrar a través de DPS (que podría estar fácilmente por encima del límite de cuota de registro): para estos escenarios, considere la posibilidad de planear actualizaciones de dispositivos en fases en lugar de actualizar toda la flota al mismo tiempo.

Pasos siguientes