Vinculación y administración de centros de IoT

Azure IoT Hub Device Provisioning Service (DPS) puede aprovisionar dispositivos en uno o varios centros de IoT. Para que DPS pueda aprovisionar dispositivos en un centro de IoT, debe estar vinculado a su instancia de DPS. Una vez vinculado, se puede usar un centro de IoT en una directiva de asignación. Las directivas de asignación determinan cómo DPS asigna los dispositivos a los centros de IoT. En este artículo se proporcionan instrucciones sobre cómo vincular centros de IoT y administrarlos en la instancia de DPS.

Centros de IoT vinculados y directivas de asignación

DPS solo puede aprovisionar los dispositivos en los centros de IoT que se hayan vinculado a él. La vinculación de un centro de IoT a una instancia de DPS proporciona al servicio permisos de lectura y escritura en el registro de dispositivos del centro de IoT. Con estos permisos, DPS puede registrar un identificador de dispositivo y establecer la configuración inicial en el dispositivo gemelo. Los centros de IoT vinculados pueden estar en cualquier región de Azure. Puede vincular centros de otras suscripciones a su instancia de DPS.

Una vez que un centro de IoT esté vinculado a DPS, es apto para participar en la asignación. El hecho de que participe en la asignación y la forma en que lo haga dependen de la configuración de la inscripción que aprovisione un dispositivo y de la configuración del propio centro de IoT vinculado.

La siguiente configuración controla cómo DPS usa centros de IoT vinculados:

  • Cadena de conexión: establece la cadena de conexión de IoT Hub que DPS usa para conectarse al centro de IoT vinculado. La cadena de conexión se basa en una de las directivas de acceso compartido de IoT Hub. DPS necesita los siguientes permisos en el centro de IoT: RegistryWrite y ServiceConnect. La cadena de conexión debe ser para una directiva de acceso compartido que tenga estos permisos. Para más información sobre las directivas de acceso compartido de IoT Hub, consulte Control de acceso y permisos de IoT Hub.

  • Ponderación de asignación: determina la probabilidad de que se seleccione un centro de IoT cuando DPS aplica hash a la asignación de dispositivos en un conjunto de centros de IoT. El valor puede estar entre uno y 1000. El valor predeterminado es uno (o null). Los valores más altos aumentan la probabilidad de que se seleccione el centro de IoT.

  • Aplicar directiva de asignación: establece si el centro de IoT participa en la directiva de asignación. El valor predeterminado es (verdadero). Si se establece en No (falso), los dispositivos no se asignarán al centro de IoT. El centro de IoT todavía se puede seleccionar en una inscripción, pero no participará en la asignación. Puede usar esta configuración para quitar temporal o permanentemente un centro de IoT de la participación en la asignación; por ejemplo, si se aproxima al número permitido de dispositivos.

Para más información sobre las directivas de asignación de DPS y cómo participan los centros de IoT vinculados, consulte Administración de directivas de asignación.

Adición de un centro de IoT vinculado

Al vincular un centro de IoT a la instancia de DPS, estará disponible para participar en la asignación. Puede agregar centros de IoT que estén dentro o fuera de la suscripción. Al vincular un centro de IoT, puede estar o no disponible para las asignaciones en las inscripciones existentes:

  • Si las inscripciones no establecen explícitamente los centros de IoT a los que aplicar la directiva de asignación, los centros de IoT recién vinculados comienzan a participar inmediatamente en la asignación.

  • En el caso de las inscripciones que establecen explícitamente los centros de IoT a los que se va a aplicar la directiva de asignación, deberá agregar de forma manual o mediante programación el nuevo centro de IoT a la configuración de inscripción para que participe en la asignación.

Limitaciones

En Azure Portal, puede vincular un centro de IoT desde el menú izquierdo de la instancia de DPS o desde la inscripción al crear o actualizar una inscripción. En ambos casos, el centro de IoT tiene como ámbito la instancia de DPS (no solo la inscripción).

Para vincular un centro de IoT a la instancia de DPS en Azure Portal:

  1. En el menú izquierdo de la instancia de DPS, seleccione Instancias de IoT Hub vinculadas.

  2. En la parte superior de la página, seleccione + Agregar.

  3. En la página Agregar un vínculo a IoT Hub, seleccione la suscripción que contiene el centro de IoT y, después, elija el nombre del centro de IoT en la lista IoT Hub.

  4. Después de seleccionar el centro de IoT, elija una directiva de acceso que DPS use para conectarse al centro de IoT. La lista Directiva de acceso muestra todas las directivas de acceso compartido definidas en la instancia de IoT Hub seleccionada que tienen definidos los permisos RegistryWrite y ServiceConnect. El valor predeterminado es la directiva iothubowner. Seleccione la directiva que quiere usar.

  5. Seleccione Guardar.

Al crear o actualizar una inscripción, puede usar el botón Vincular un nuevo centro de IoT en la inscripción. Aparecerá la misma página y las opciones anteriores. Después de guardar el centro vinculado, estará disponible en la instancia de DPS y se puede seleccionar en la inscripción.

Nota:

En Azure Portal, no puede establecer las opciones Ponderación de asignación y Aplicar directiva de asignación al agregar un centro de IoT vinculado. Sin embargo, puede actualizar estas opciones después de que el centro de IoT esté vinculado. Para más información, consulte Actualización de un centro de IoT vinculado.

Use el comando az iot dps linked-hub create de la CLI de Azure para vincular una instancia de IoT Hub a la instancia de DPS.

Por ejemplo, el siguiente comando vincula un centro de IoT denominado MyExampleHub mediante una cadena de conexión de su directiva de acceso compartido iothubowner. Este comando deja las opciones Ponderación de asignación y Aplicar directiva de asignación en sus valores predeterminados, pero puede cambiarlos si así lo desea.

az iot dps linked-hub create --dps-name MyExampleDps --resource-group MyResourceGroup --connection-string "HostName=MyExampleHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=XNBhoasdfhqRlgGnasdfhivtshcwh4bJwe7c0RIGuWsirW0=" --location westus

DPS también admite la vinculación de centros de IoT mediante la API REST de creación o actualización de recursos de DPS, las plantillas de Resource Manager y los SDK de administración de DPS.

Actualización de un centro de IoT vinculado

Puede actualizar la configuración de un centro de IoT vinculado para cambiar su ponderación de asignación, la posibilidad de aplicarle directivas de asignación y la cadena de conexión que DPS usa para conectarse a él. Al actualizar la configuración de un centro de IoT, los cambios surten efecto inmediatamente, tanto si el centro de IoT se especifica en una inscripción como si se usa de forma predeterminada.

Uso de Azure Portal para actualizar un centro de IoT vinculado

En Azure Portal, puede actualizar las opciones Ponderación de asignación y Aplicar directiva de asignación.

Para actualizar la configuración de un centro de IoT vinculado mediante Azure Portal, siga estos pasos:

  1. En el menú izquierdo de la instancia de DPS, seleccione Instancias de IoT Hub vinculadas y, luego, elija el centro de IoT de la lista.

  2. En la página Detalles de IoT Hub vinculados, haga lo siguiente:

    Screenshot that shows the linked IoT hub details page. .

    • Use el control deslizante Ponderación de asignación o el cuadro de texto para elegir una ponderación entre uno y 1000. El valor predeterminado es uno.

    • Establezca la opción Aplicar directiva de asignación para especificar si el centro de IoT vinculado debe incluirse en la asignación.

  3. Guarde la configuración.

Nota:

En Azure Portal no se puede actualizar la cadena de conexión que DPS usa para conectarse al centro de IoT. En su lugar, puede usar la CLI de Azure para actualizar la cadena de conexión o puede eliminar el centro de IoT vinculado de la instancia de DPS y volver a vincularlo. Para más información, consulte Actualización de claves para centros de IoT vinculados.

Uso de la CLI de Azure para actualizar un centro de IoT vinculado

Con la CLI de Azure, puede actualizar las opciones Ponderación de asignación, Aplicar directiva de asignación y Cadena de conexión.

Use el comando az iot dps linked-hub update para actualizar la ponderación de asignación o aplicar la configuración de directivas de asignación. Por ejemplo, el siguiente comando establece la ponderación de asignación y aplica la directiva de asignación a un centro de IoT vinculado:

az iot dps linked-hub update --dps-name MyExampleDps --resource-group MyResourceGroup --linked-hub MyExampleHub --allocation-weight 2 --apply-allocation-policy true

Use el comando az iot dps update para actualizar la cadena de conexión de un centro de IoT vinculado. Puede usar el parámetro --set junto con la cadena de conexión de la directiva de acceso compartido de IoT Hub que quiera usar. Para más información, consulte Actualización de claves para centros de IoT vinculados.

DPS también admite la actualización de centros de IoT vinculados mediante la API REST de creación o actualización de recursos de DPS, las plantillas de Resource Manager y los SDK de administración de DPS.

Eliminación de un centro de IoT vinculado

Al eliminar un centro de IoT vinculado de la instancia de DPS, ya no estará disponible para establecerlo en futuras inscripciones. Sin embargo, puede o no quitarse de las asignaciones en las inscripciones existentes:

  • En el caso de las inscripciones que no establecen explícitamente los centros de IoT a los que aplicar la directiva de asignación, los centros de IoT vinculados eliminados ya no estarán disponibles para la asignación.

  • En el caso de las inscripciones que establecen explícitamente los centros de IoT a los que se va a aplicar la directiva de asignación, deberá quitar de forma manual o mediante programación el centro de IoT de la configuración de inscripción para que se le excluya de participar en la asignación. Si no lo hace, se puede producir un error cuando un dispositivo intente aprovisionarse mediante la inscripción.

Uso de Azure Portal para eliminar un centro de IoT vinculado

Para eliminar un centro de IoT vinculado de la instancia de DPS en Azure Portal, haga lo siguiente:

  1. En el menú izquierdo de la instancia de DPS, seleccione Instancias de IoT Hub vinculadas.

  2. En la lista de centros de IoT, active la casilla situada junto a los centros de IoT que quiere eliminar. A continuación, seleccione Eliminar en la parte superior de la página y confirme su elección cuando se le solicite.

Uso de la CLI de Azure para eliminar un centro de IoT vinculado

Use el comando az iot dps linked-hub delete para quitar un centro de IoT vinculado de la instancia de DPS. Por ejemplo, el siguiente comando quita el centro de IoT denominado MyExampleHub:

az iot dps linked-hub delete --dps-name MyExampleDps --resource-group MyResourceGroup --linked-hub MyExampleHub

DPS también admite la eliminación de centros de IoT vinculados de la instancia de DPS mediante la API REST de creación o actualización de recursos de DPS, las plantillas de Resource Manager y los SDK de administración de DPS.

Actualización de claves para centros de IoT vinculados

Es posible que sea necesario rotar o actualizar las claves simétricas de un centro de IoT que se ha vinculado a DPS. En este caso, también tendrá que actualizar la configuración de la cadena de conexión en DPS para el centro de IoT vinculado. Tenga en cuenta que el aprovisionamiento de un centro de IoT producirá un error durante el período intermedio entre la actualización de una clave en el centro de IoT y la actualización de la instancia de DPS con la nueva cadena de conexión basada en esa clave. Por este motivo, se recomienda usar la CLI de Azuer para actualizar las claves porque puede actualizar la cadena de conexión en el centro vinculado directamente. Con Azure Portal, debe eliminar el centro de IoT de la instancia de DPS y, luego, volver a vincularlo para actualizar la cadena de conexión.

Uso de Azure Portal para actualizar las claves

No se puede actualizar la configuración de la cadena de conexión de un centro de IoT vinculado al usar Azure Portal. En su lugar, debe eliminar el centro de IoT vinculado de la instancia de DPS y, luego, volver a agregarlo.

Para actualizar las claves simétricas de un centro de IoT vinculado en Azure Portal, haga lo siguiente:

  1. En el menú izquierdo de la instancia de DPS en Azure Portal, seleccione el centro de IoT para el que quiere actualizar las claves.

  2. En la página Detalles de IoT Hub vinculados, anote los valores de Ponderación de asignación y Aplicar directiva de asignación, ya que los necesitará al volver a vincular el centro de IoT a la instancia de DPS más adelante. A continuación, seleccione Administrar recurso para ir al centro de IoT.

  3. En el menú izquierdo del centro de IoT, en Configuración de seguridad, seleccione Directivas de acceso compartido.

  4. En Directivas de acceso compartido, en Administrar directivas de acceso compartido, seleccione la directiva que usa la instancia de DPS para conectarse al centro de IoT vinculado.

  5. En la parte superior de la página, seleccione Regenerar clave principal, Regenerar clave secundaria o Claves de intercambio y confirme su elección cuando se le solicite.

  6. Vuelva a la instancia de DPS.

  7. Siga los pasos descritos en Eliminación de un centro de IoT para eliminar el centro de IoT de la instancia de DPS.

  8. Siga los pasos descritos en Vinculación de un centro de IoT para volver a vincular el centro de IoT a la instancia de DPS con la nueva cadena de conexión de la directiva.

  9. Si necesita restaurar los valores de ponderación de asignación y aplicación de la directiva de asignación, siga los pasos descritos en Actualización de un centro de IoT vinculado con los valores que guardó en el paso 2.

Uso de la CLI de Azure para actualizar las claves

Para actualizar las claves simétricas de un centro de IoT vinculado con la CLI de Azure:

  1. Use el comando az iot hub policy renew-key para intercambiar o volver a generar las claves simétricas de la directiva de acceso compartido en el centro de IoT. Por ejemplo, el siguiente comando renueva la clave principal de la directiva de acceso compartido iothubowner en un centro de IoT:

    az iot hub policy renew-key --hub-name MyExampleHub --name owner --rk primary
    
  2. Use el comando az iot hub connection-string show para obtener la nueva cadena de conexión de la directiva de acceso compartido. Por ejemplo, el siguiente comando obtiene la cadena de conexión principal de la directiva de acceso compartido iothubowner para la que se regeneró la clave principal en el comando anterior:

    az iot hub connection-string show --hub-name MyExampleHub --policy-name owner --key-type primary
    
  3. Use el comando az iot dps linked-hub list para encontrar la posición del centro de IoT en la colección de centros de IoT vinculados de la instancia de DPS. Por ejemplo, el siguiente comando obtiene la cadena de conexión principal de la directiva de acceso compartido owner para la que se ha regenerado la clave principal en el comando anterior:

    az iot dps linked-hub list --dos-name MyExampleDps
    

    La salida mostrará la posición del centro de IoT vinculado para el que quiere actualizar la cadena de conexión en la tabla de centros de IoT vinculados mantenidos por la instancia de DPS. En este caso, es el primer centro de IoT de la lista, MyExampleHub.

    [
    {
        "allocationWeight": null,
        "applyAllocationPolicy": null,
        "connectionString": "HostName=MyExampleHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=****",
        "location": "centralus",
        "name": "MyExampleHub.azure-devices.net"
    },
    {
        "allocationWeight": null,
        "applyAllocationPolicy": null,
        "connectionString": "HostName=MyExampleHub-2.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=****",
        "location": "centralus",
        "name": "NyExampleHub-2.azure-devices.net"
    }
    ]
    
  4. Use el comando az iot dps update para actualizar la cadena de conexión del centro de IoT vinculado. Use el parámetro --set y la posición del centro de IoT vinculado en la tabla properties.iotHubs[] para dirigirse al centro de IoT. Por ejemplo, el comando siguiente actualiza la cadena de conexión de MyExampleHub que se devolvió primero en el comando anterior:

    az iot dps update --name MyExampleDps --set properties.iotHubs[0].connectionString="HostName=MyExampleHub-2.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=NewTokenValue"
    

Pasos siguientes