Compartir a través de


Programación y difusión de trabajos con la CLI de Azure

Use la CLI de Azure para programar y realizar un seguimiento de los trabajos que actualizan millones de dispositivos. Use los trabajos para:

  • Actualizar las propiedades deseadas
  • Actualizar etiquetas
  • Invocar métodos directos

Conceptualmente, un trabajo contiene una de estas acciones y realiza un seguimiento del progreso de ejecución en un conjunto de dispositivos. Una consulta de dispositivo gemelo define el conjunto de dispositivos con los que interactúa un trabajo. Por ejemplo, una aplicación back-end puede usar un trabajo para invocar un método de reinicio en 10 000 dispositivos, especificado por una consulta de dispositivos gemelos y programada en el futuro. Esa aplicación puede después seguir el progreso cuando cada uno de estos dispositivos reciben y ejecutan el método de reinicio.

Para obtener más información sobre cómo los trabajos ayudan a administrar las operaciones de administración masiva de dispositivos, consulte Programación de trabajos en varios dispositivos.

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 Gratis de IoT Hub, consulte Elección del nivel adecuado de IoT Hub para la solución.

Requisitos previos

  • CLI de Azure. También puede ejecutar todos los comandos de este artículo mediante Azure Cloud Shell, un shell interactivo de la CLI que se ejecuta en el explorador o en una aplicación como el terminal de Windows. Si usa el Cloud Shell, no necesita instalar nada. Si prefiere usar la CLI en un entorno local, para este artículo se requiere la versión 2.36 o posterior de la CLI de Azure. Ejecute az --version para ver cuál es la versión instalada. Para instalar localmente o actualizar la CLI de Azure, vea Instalación de la CLI de Azure.

  • Una instancia de IoT Hub en la suscripción de Azure. Si aún no tiene un centro, puede seguir los pasos descritos en Creación de un centro de IoT.

Programar un trabajo para invocar un método directo

Puede usar trabajos para invocar un método directo en uno o varios dispositivos.

Use el comando az iot hub job create, reemplazando los siguientes marcadores de posición por sus valores correspondientes. El comando programa un trabajo que ejecuta un nombre de método en los dispositivos de destino.

az iot hub job create --hub-name {HubName} --job-id {JobName} \
                      --job-type scheduleDeviceMethod \
                      --method-name {MethodName} --method-payload {MethodPayload} \
                      --query-condition "{DeviceQuery}"
Marcador Valor
{HubName} El nombre del centro de IoT.
{JobName} Nombre del trabajo programado. Los nombres de los trabajos son únicos, por lo que elija un nombre de trabajo diferente cada vez que ejecute este comando.
{MethodName} Nombre del método directo.
{MethodPayload} Cualquier carga que se va a proporcionar al método directo. Si no se requiere ninguna carga, use null.
{DeviceQuery} Consulta que define el dispositivo o los dispositivos a los que se dirige con el trabajo. Por ejemplo, un trabajo de dispositivo único podría utilizar la siguiente condición de consulta: deviceId = 'myExampleDevice'.

Sugerencia

Al programar un comando az iot hub job create que invoca un método directo, debe especificar valores para los parámetros --method-name y --method-payload opcionales. Para los métodos directos que no aceptan una carga, especifique null para el parámetro --method-payload.

Programar un trabajo para actualizar las propiedades de un dispositivo gemelo

Puede usar trabajos para actualizar una propiedad deseada del dispositivo gemelo.

Use el comando az iot hub job create, reemplazando los siguientes marcadores de posición por sus valores correspondientes. En este ejemplo, estamos programando un trabajo para establecer el valor de la propiedad gemela deseada BuildingNo en 45 para nuestro dispositivo simulado.

az iot hub job create --hub-name {HubName} --job-id {JobName} \
                      --job-type scheduleUpdateTwin \
                      --twin-patch '{JSONTwinPatch}' \
                      --query-condition "{DeviceQuery}"
Marcador Valor
{HubName} El nombre del centro de IoT.
{JobName} Nombre del trabajo programado. Los nombres de los trabajos son únicos, por lo que elija un nombre de trabajo diferente cada vez que ejecute este comando.
{JSONTwinPatch} Fragmento de código JSON que desea usar para actualizar las propiedades deseadas del dispositivo gemelo. Por ejemplo, {"properties":{"desired": {"BuildingNo": 45}}}.
{DeviceQuery} Consulta que define el dispositivo o los dispositivos a los que se dirige con el trabajo. Por ejemplo, un trabajo de dispositivo único podría utilizar la siguiente condición de consulta: deviceId = 'myExampleDevice'.

Aprenda a implementar trabajos mediante programación mediante los SDK de Azure IoT: Programación y difusión de trabajos.