Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La administración automática de dispositivos de Azure IoT Hub simplifica el proceso de administración de grandes flotas de dispositivos mediante la automatización de tareas repetitivas y complejas. Con las configuraciones automáticas de dispositivos y módulos, puede establecer como destino los dispositivos en función de sus propiedades, especificar la configuración deseada y permitir que IoT Hub aplique actualizaciones a medida que los dispositivos cumplan los criterios definidos. Este enfoque le permite supervisar el estado de configuración, resolver conflictos e implementar cambios en fases para un mayor control y cumplimiento.
Nota:
Las características descritas en este artículo solo están disponibles en el nivel estándar de IoT Hub. Para obtener más información sobre los niveles básico y estándar o gratuito de IoT Hub, consulte Elección del nivel y tamaño adecuados de IoT Hub para la solución.
Información general sobre la administración automática de dispositivos
La administración automática de dispositivos funciona aplicando propiedades deseadas a grupos de dispositivos gemelos o módulos gemelos y resumen de los resultados mediante las propiedades notificadas. Este proceso usa un documento JSON especializado denominado Configuration, que consta de tres componentes principales:
La condición de destino define el ámbito de los dispositivos gemelos o módulos gemelos que se van a actualizar. La condición de destino se especifica como una consulta de las propiedades notificadas o de las etiquetas de los gemelos.
El contenido de destino define las propiedades deseadas que se van a agregar o actualizar en los dispositivos gemelos o módulos gemelos de destino. El contenido incluye una ruta de acceso a la sección de las propiedades deseadas que se van a cambiar.
El componente de métricas proporciona recuentos de resumen para los estados de configuración, como Correcto, En curso y Error. Puede definir métricas personalizadas mediante consultas en propiedades notificadas de gemelos, mientras que las métricas del sistema realizan un seguimiento automático del estado de actualización, incluido el número de gemelos de destino y cuántos se actualizan correctamente.
Las configuraciones automáticas se ejecutan por primera vez poco después de crear la configuración y, a continuación, a intervalos de cinco minutos. Las consultas de métricas se ejecutan cada vez que se ejecuta la configuración automática. Se admite un máximo de 100 configuraciones automáticas en centros de IoT de nivel estándar; diez en los centros de IoT de nivel gratis. También se aplican límites. Para más información, consulte Cuotas y límites.
Prerrequisitos
Una suscripción de Azure activa. Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Un IoT hub en tu suscripción de Azure. Si aún no tiene un centro, puede seguir los pasos descritos en Creación de un centro de IoT.
Implementación de gemelos
Las configuraciones automáticas de dispositivos requieren el uso de dispositivos gemelos para sincronizar el estado entre la nube y los dispositivos. Para más información, consulte Información y uso de dispositivos gemelos en IoT Hub.
Las configuraciones automáticas de módulo requieren el uso de módulos gemelos para sincronizar el estado entre la nube y los módulos. Para más información, consulte Descripción y uso de módulos gemelos en IoT Hub.
Uso de etiquetas para orientar a gemelos
Antes de crear una configuración, debe especificar qué dispositivos o módulos desea afectar. Azure IoT Hub identifica los dispositivos mediante etiquetas en el dispositivo gemelo e identifica módulos mediante etiquetas en el módulo gemelo. Cada dispositivo o módulo puede tener varias etiquetas y puede definirlas de cualquier manera que tenga sentido para la solución. Por ejemplo, si administra dispositivos en diferentes ubicaciones, agregue las siguientes etiquetas a un dispositivo gemelo:
"tags": {
"location": {
"state": "Washington",
"city": "Tacoma"
}
},
Creación de una configuración
Puede crear un máximo de 100 configuraciones automáticas en centros de IoT de nivel estándar; diez en los centros de IoT de nivel gratis. Para obtener más información, consulte Cuotas y limitación.
En el portal de Azure, vaya a su centro de IoT.
Seleccione Configuraciones e implementaciones en el panel de navegación izquierdo.
Seleccione Agregar y elija Configuración de dispositivosgemelos o Configuración del módulo gemelo en la lista desplegable.
Hay cinco pasos para crear una configuración. En las secciones siguientes se recorre cada una de ellas.
Nombre y etiqueta
- Escriba un nombre único para la configuración. El nombre puede tener hasta 128 caracteres y puede incluir letras minúsculas y los siguientes caracteres especiales:
-+%_*!'. No están permitidos los espacios. - Agregue etiquetas para organizar y describir la configuración. Las etiquetas son pares clave-valor, como
HostPlatform, LinuxoVersion, 3.0.1. - Seleccione Next (Siguiente) para continuar.
Configuraciones gemelas
Establezca el contenido de las propiedades deseadas del dispositivo gemelo o del módulo gemelo de destino proporcionando dos entradas para cada configuración. En primer lugar, especifique la ruta del gemelo, que apunta a la sección JSON en las propiedades deseadas del gemelo para actualizar. A continuación, escriba el contenido JSON que se va a insertar en esa ubicación.
Por ejemplo, puede establecer la ruta de acceso del gemelo en properties.desired.chiller-water y, a continuación, proporcionar el siguiente contenido JSON:
{
"temperature": 66,
"pressure": 28
}
Para definir opciones de configuración individuales también puede especificar la ruta de acceso completa del gemelo y proporcionar el valor sin corchetes. Por ejemplo, con el camino gemelo properties.desired.chiller-water.temperature, establezca el contenido en 66. A continuación, cree un nuevo ajuste del gemelo para la propiedad pressure.
Si dos o más configuraciones apuntan a la misma ruta de gemelo, se aplica el contenido de la configuración con la prioridad más alta (la prioridad se define en el paso 4).
Si desea quitar una propiedad existente, especifique el valor de propiedad en null.
Para agregar opciones adicionales, seleccione Agregar configuración de dispositivo gemelo o Agregar configuración de módulo gemelo.
Dispositivos o módulos objetivo
Use la propiedad tags de los gemelos para dirigirse a los dispositivos o módulos específicos que deberían recibir esta configuración. También puede tener como destino las propiedades notificadas de gemelos.
Las configuraciones automáticas de dispositivos solo pueden tener como destino etiquetas de dispositivo gemelo y las configuraciones automáticas del módulo solo pueden tener como destino etiquetas de módulo gemelo.
Dado que varias configuraciones pueden tener como destino el mismo dispositivo o módulo, cada configuración necesita un número de prioridad. Si alguna vez hay un conflicto, la configuración con la prioridad más alta gana.
Escriba un entero positivo para la prioridad de configuración. El valor numérico más alto se considera la prioridad más alta. Si dos configuraciones tienen el mismo número de prioridad, la creada más recientemente gana.
Escriba una condición de destino para determinar qué dispositivos o módulos están destinados a esta configuración. La condición se basa en etiquetas gemelas o propiedades notificadas de gemelos y debe coincidir con el formato de expresión.
Para la configuración automática de dispositivos, puede especificar solo la etiqueta o la propiedad notificada de destino. Por ejemplo,
tags.environment='test'oproperties.reported.chillerProperties.model='4000x'. Puede especificar*para dirigirlo a todos los dispositivos.Para la configuración automática del módulo, use una consulta para especificar etiquetas o propiedades notificadas de los módulos registrados en IoT Hub. Por ejemplo,
from devices.modules where tags.environment='test'ofrom devices.modules where properties.reported.chillerProperties.model='4000x'. El carácter comodín no se puede usar para tener como destino todos los módulos.
Metrics
Las métricas proporcionan recuentos de resumen de los distintos estados que un dispositivo o módulo puede notificar después de aplicar el contenido de configuración. Por ejemplo, puede crear una métrica para los cambios de configuración pendientes, una métrica para errores y una métrica para realizar cambios correctos en la configuración.
Cada configuración puede tener hasta cinco métricas personalizadas.
Escriba un nombre para Nombre de métrica.
Escriba una consulta para Criterios de métricas. La consulta se basa en las propiedades notificadas del dispositivo gemelo. La métrica representa el número de filas devueltas por la consulta.
Por ejemplo:
SELECT deviceId FROM devices WHERE properties.reported.chillerWaterSettings.status='pending'Puede incluir una cláusula indicando que se aplicó la configuración, por ejemplo:
/* Include the double brackets. */ SELECT deviceId FROM devices WHERE configurations.[[yourconfigname]].status='Applied'Si va a crear una métrica para informar sobre los módulos configurados, seleccione
moduleIdendevices.modules. Por ejemplo:SELECT deviceId, moduleId FROM devices.modules WHERE properties.reported.lastDesiredStatus.code = 200
Revisión de la configuración
Revise la información de configuración y seleccione Enviar.
Supervisión de una configuración
Para ver los detalles de una configuración y supervisar los dispositivos que lo ejecutan, siga estos pasos:
En el portal de Azure, vaya a su centro de IoT.
Seleccione Configuraciones en Administración de dispositivos.
Inspeccione la lista de configuración. Para cada configuración, puede ver los detalles siguientes:
Id. : el nombre de la configuración.
Condición de destino : la consulta que se usa para definir los dispositivos o módulos de destino.
Prioridad: el número de prioridad asignado a la configuración.
Hora de creación : la marca de tiempo desde la que se creó la configuración. Esta marca de tiempo se usa para romper los vínculos cuando dos configuraciones tienen la misma prioridad.
Métricas del sistema: métricas calculadas por IoT Hub y que los desarrolladores no pueden personalizar. Los destinos especifican el número de dispositivos gemelos que coinciden con la condición de destino. Aplica se especifica el número de dispositivos gemelos modificados por la configuración, que pueden incluir modificaciones parciales en caso de que también se realicen cambios en una configuración de prioridad superior independiente.
Métricas personalizadas: métricas especificadas por el desarrollador como consultas de las propiedades notificadas de los gemelos. Se pueden definir hasta cinco métricas personalizadas por configuración.
Seleccione la configuración que desea supervisar.
Inspeccione los detalles de configuración. Puede usar pestañas para ver detalles específicos sobre los dispositivos que recibieron la configuración.
Dispositivos de destino o Módulos de destino: los dispositivos o módulos que coinciden con la condición de destino.
Métricas : una lista de métricas del sistema y métricas personalizadas. Puede ver una lista de dispositivos o módulos que se cuentan para cada métrica seleccionando la métrica en la lista desplegable y seleccionando Ver dispositivos o Ver módulos.
Etiquetas : pares clave-valor usados para describir una configuración. Las etiquetas no tienen ningún impacto en la funcionalidad.
Configuración del dispositivo gemelo o Configuración del módulo gemelo : la configuración del gemelo establecida por la configuración, si existe.
Modificación de una configuración
Al modificar una configuración, los cambios se replican inmediatamente en todos los dispositivos o módulos de destino.
Si actualiza la condición de destino, se producen las siguientes actualizaciones:
Si un gemelo no cumple la condición de destino anterior, pero cumple la nueva condición de destino y esta configuración es la prioridad más alta para ese gemelo, se aplica esta configuración.
Si un gemelo que ejecuta actualmente esta configuración ya no cumple la condición objetivo, los ajustes de la configuración se quitarán y el gemelo será modificado por la siguiente configuración de prioridad más alta.
Si un gemelo que ejecuta esta configuración ya no cumple la condición de destino y no cumple la condición de destino de ninguna otra configuración, se quitarán las opciones de la configuración y no se realizará ningún otro cambio en el gemelo.
Para modificar una configuración, siga estos pasos:
- En el portal de Azure, vaya a su centro de IoT.
- Seleccione Configuraciones e implementaciones en Administración de dispositivos.
- Seleccione la configuración que desea modificar.
- Puede realizar actualizaciones en los siguientes campos: prioridad, métricas, condición de destino y etiquetas.
- Haga clic en Guardar.
- Siga los pasos descritos en Supervisión de una configuración para ver la implementación de los cambios.
Eliminar una configuración
Al eliminar una configuración, los dispositivos gemelos toman su siguiente configuración de prioridad más alta. Si los dispositivos gemelos no cumplen la condición de destino de ninguna otra configuración, no se aplicará ninguna otra configuración.
- En el portal de Azure, vaya a su centro de IoT.
- Seleccione Configuraciones e implementaciones en Administración de dispositivos.
- Use la casilla para seleccionar la configuración que desea eliminar.
- Seleccione Eliminar.
- Se le pedirá que confirme.
Prerrequisitos
Una suscripción de Azure activa. Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Un IoT hub en tu suscripción de Azure. Si aún no tiene un centro, puede seguir los pasos descritos en Creación de un centro de IoT.
CLI de Azure en su entorno. Como mínimo, la versión de la CLI de Azure debe ser 2.0.70 o posterior. Use
az –-versionpara validar. Esta versión admite comandos de extensión az e introduce el marco de comandos Knack.
Nota:
En este artículo se usa la versión más reciente de la extensión de Azure IoT, denominada azure-iot. La versión heredada se denomina azure-cli-iot-ext. Solo debe tener instalada una versión a la vez. Puede usar el comando az extension list para validar las extensiones instaladas actualmente.
Use az extension remove --name azure-cli-iot-ext para eliminar la versión heredada de la extensión.
Use az extension add --name azure-iot para agregar la nueva versión de la extensión.
Para ver qué extensiones están instaladas actualmente, use az extension list.
Implementación de gemelos
Las configuraciones automáticas de dispositivos requieren el uso de dispositivos gemelos para sincronizar el estado entre la nube y los dispositivos. Para más información, consulte Información y uso de dispositivos gemelos en IoT Hub.
Las configuraciones automáticas de módulo requieren el uso de módulos gemelos para sincronizar el estado entre la nube y los módulos. Para más información, consulte Descripción y uso de módulos gemelos en IoT Hub.
Uso de etiquetas para orientar a gemelos
Antes de crear una configuración, debe especificar qué dispositivos o módulos desea afectar. Azure IoT Hub identifica dispositivos y usa etiquetas en el dispositivo gemelo e identifica módulos mediante etiquetas en el módulo gemelo. Cada dispositivo o módulo puede tener varias etiquetas y puede definirlas de cualquier manera que tenga sentido para la solución. Por ejemplo, si administra dispositivos en diferentes ubicaciones, agregue las siguientes etiquetas a un dispositivo gemelo:
"tags": {
"location": {
"state": "Washington",
"city": "Tacoma"
}
},
Definición del contenido y las métricas de destino
El contenido de destino y las consultas de métricas se especifican como documentos JSON que describen las propiedades deseadas del dispositivo gemelo o módulo gemelo que deben establecerse, y las propiedades reportadas que deben medirse. Para crear una configuración automática mediante la CLI de Azure, guarde el contenido de destino y las métricas localmente como archivos .txt. Utilizarás las rutas de acceso de los archivos en una sección posterior cuando ejecutes el comando para aplicar la configuración a tu dispositivo.
Este es un ejemplo de contenido de destino básico para una configuración automática de dispositivos:
{
"content": {
"deviceContent": {
"properties.desired.chillerWaterSettings": {
"temperature": 38,
"pressure": 78
}
}
}
}
Las configuraciones automáticas del módulo se comportan de forma similar, pero debes apuntar a moduleContent en lugar de deviceContent.
{
"content": {
"moduleContent": {
"properties.desired.chillerWaterSettings": {
"temperature": 38,
"pressure": 78
}
}
}
}
Estos son ejemplos de consultas de métricas:
{
"queries": {
"Compliant": "select deviceId from devices where configurations.[[chillerdevicesettingswashington]].status = 'Applied' AND properties.reported.chillerWaterSettings.status='current'",
"Error": "select deviceId from devices where configurations.[[chillerdevicesettingswashington]].status = 'Applied' AND properties.reported.chillerWaterSettings.status='error'",
"Pending": "select deviceId from devices where configurations.[[chillerdevicesettingswashington]].status = 'Applied' AND properties.reported.chillerWaterSettings.status='pending'"
}
}
Las consultas de métricas de los módulos también son similares a las consultas de los dispositivos, pero se selecciona moduleId en devices.modules. Por ejemplo:
{
"queries": {
"Compliant": "select deviceId, moduleId from devices.module where configurations.[[chillermodulesettingswashington]].status = 'Applied' AND properties.reported.chillerWaterSettings.status='current'"
}
}
Creación de una configuración
Puede crear un máximo de 100 configuraciones automáticas en centros de IoT de nivel estándar; diez en los centros de IoT de nivel gratis. Para obtener más información, consulte Cuotas y limitación.
Los dispositivos de destino se configuran mediante la creación de una configuración que consta del contenido y las métricas de destino. Use el comando siguiente para crear una configuración:
az iot hub configuration create --config-id [configuration id] \
--labels [labels] --content [file path] --hub-name [hub name] \
--target-condition [target query] --priority [int] \
--metrics [metric queries]
-- config-id : el nombre de la configuración creada en el centro de IoT. Asigne a la configuración un nombre único que tenga hasta 128 caracteres. Se permiten letras minúsculas y los siguientes caracteres especiales:
-+%_*!'. No están permitidos los espacios.-- etiquetas : agregue etiquetas para ayudar a realizar un seguimiento de la configuración. Las etiquetas son pares de nombre y valor que describen la implementación. Por ejemplo,
HostPlatform, LinuxoVersion, 3.0.1-- contenido: JSON insertado o ruta de acceso de archivo al contenido de destino que se va a establecer como propiedades deseadas de gemelo.
-- hub-name : nombre del centro de IoT en el que se crea la configuración. El centro debe estar en la suscripción actual. Cambie a la suscripción deseada con el comando .
az account set -s [subscription name]-- target-condition : escriba una condición de destino para determinar qué dispositivos o módulos se asignarán a esta configuración. Para la configuración automática del dispositivo, la condición se basa en etiquetas de dispositivo gemelo o propiedades deseadas del dispositivo gemelo y debe coincidir con el formato de expresión. Por ejemplo,
tags.environment='test'oproperties.desired.devicemodel='4000x'. Para la configuración automática del módulo, la condición se basa en etiquetas de módulo gemelo o propiedades deseadas del módulo gemelo. Por ejemplo,from devices.modules where tags.environment='test'ofrom devices.modules where properties.reported.chillerProperties.model='4000x'.-- priority : entero positivo. En caso de que dos o más configuraciones se dirijan al mismo dispositivo o módulo, se aplica la configuración con el valor numérico más alto para Priority.
-- metrics – Filepath para las consultas de métricas. Las métricas proporcionan recuentos de resumen de los distintos estados que un dispositivo o módulo puede notificar después de aplicar el contenido de configuración. Por ejemplo, puede crear una métrica para los cambios de configuración pendientes, una métrica para errores y una métrica para realizar cambios correctos en la configuración.
Supervisión de una configuración
Use el siguiente comando para mostrar el contenido de una configuración:
az iot hub configuration show --config-id [configuration id] \
--hub-name [hub name]
-- config-id - el nombre de la configuración que existe en IoT Hub.
-- hub-name : nombre del centro de IoT en el que existe la configuración. El centro debe estar en la suscripción actual. Cambie a la suscripción deseada con el comando
az account set -s [subscription name].
Inspeccione la configuración en la ventana de comandos. La propiedad metrics enumera un recuento de cada métrica que evalúa cada hub:
targetedCount : métrica del sistema que especifica el número de dispositivos gemelos o módulos gemelos de IoT Hub que coinciden con la condición de destino.
appliedCount : una métrica del sistema especifica el número de dispositivos o módulos que han aplicado el contenido de destino.
Métrica personalizada : las métricas definidas son métricas de usuario.
Puede mostrar una lista de identificadores de dispositivo, identificadores de módulo o objetos para cada una de las métricas mediante el comando siguiente:
az iot hub configuration show-metric --config-id [configuration id] \
--metric-id [metric id] --hub-name [hub name] --metric-type [type]
-- config-id - el nombre de la implementación que existe en IoT Hub.
-- metric-id : el nombre de la métrica para la que desea ver la lista de identificadores de dispositivo o identificadores de módulo, por ejemplo
appliedCount.-- hub-name : nombre del centro de IoT en el que existe la implementación. El centro debe estar en la suscripción actual. Cambie a la suscripción deseada con el comando
az account set -s [subscription name].-- Tipo de métrica : el tipo de métrica puede ser
systemouser. Las métricas del sistema sontargetedCountyappliedCount. Todas las demás métricas son métricas de usuario.
Modificación de una configuración
Al modificar una configuración, los cambios se replican inmediatamente en todos los dispositivos de destino.
Si actualiza la condición de destino, se producen las siguientes actualizaciones:
Si un gemelo no cumple la condición de destino anterior, pero cumple la nueva condición de destino y esta configuración es la prioridad más alta para ese gemelo, se aplica esta configuración.
Si un gemelo que ejecuta actualmente esta configuración ya no cumple la condición objetivo, los ajustes de la configuración se quitarán y el gemelo será modificado por la siguiente configuración de prioridad más alta.
Si un gemelo que ejecuta esta configuración ya no cumple la condición de destino y no cumple la condición de destino de ninguna otra configuración, se quitarán las opciones de la configuración y no se realizará ningún otro cambio en el gemelo.
Use el comando siguiente para actualizar una configuración:
az iot hub configuration update --config-id [configuration id] \
--hub-name [hub name] --set [property1.property2='value']
-- config-id - el nombre de la configuración que existe en IoT Hub.
-- hub-name : nombre del centro de IoT en el que existe la configuración. El centro debe estar en la suscripción actual. Cambie a la suscripción deseada con el comando
az account set -s [subscription name].-- set : actualice una propiedad en la configuración. Puede actualizar las siguientes propiedades:
targetCondition — por ejemplo
targetCondition=tags.location.state='Oregon'labels
prioridad
Eliminar una configuración
Al eliminar una configuración, los dispositivos gemelos o módulos gemelos toman su siguiente configuración de prioridad más alta. Si los gemelos no cumplen la condición de destino de ninguna otra configuración, no se aplicará ninguna otra configuración.
Use el comando siguiente para eliminar una configuración:
az iot hub configuration delete --config-id [configuration id] \
--hub-name [hub name]
-- config-id - el nombre de la configuración que existe en IoT Hub.
-- hub-name : nombre del centro de IoT en el que existe la configuración. El centro debe estar en la suscripción actual. Cambie a la suscripción deseada con el comando
az account set -s [subscription name].
Pasos siguientes
En este artículo, ha aprendido a configurar y supervisar dispositivos IoT a escala.
Para obtener información sobre cómo administrar identidades de dispositivo de IoT Hub de forma masiva, consulte Importación y exportación de identidades de dispositivo de IoT Hub en masa.