Si las tareas de configuración de propiedades por lotes o las tareas de llamada de servicio por lotes ya no satisfacen sus requisitos comerciales, puede crear tareas personalizadas y configurar reglas a la medida para cubrir diversos escenarios. Este tema describe cómo crear una tarea personalizada y consultar su información. También se detallan los topics que se utilizan durante la ejecución de la tarea y los formatos de mensaje correspondientes.
Requisitos previos
Debe tener una tarea desplegada en un dispositivo con la funcionalidad de gestión correspondiente desarrollada. Para obtener más información, consulte Overview.
Proceso de gestión de tareas
-
Cree una tarea personalizada.
En la IoT Platform console, vaya a su instancia. En el panel de navegación izquierdo, seleccione . En la página Tasks, haga clic en Create Task.
-
En la página Create Task, configure los parámetros en los pasos Create Task y Task Schedule. A continuación, haga clic en Complete. Pase el puntero sobre el icono
junto a un parámetro para consultar información al respecto.-
Create Task
Parámetro
Descripción
Task Name
Especifique un nombre de tarea válido. Puede definir un nombre personalizado.
Task Type
Establezca este parámetro en Custom Task.
Task Description
Especifique información como el propósito de la tarea, lo cual facilita su identificación.
Destination Device, Product, or Group
Seleccione los dispositivos destino para la tarea. Puede seleccionarlos por dispositivo, producto o grupo.Importante Si selecciona dispositivos por grupo, no podrá elegir un grupo dinámico.Task Execution Rules Issued to Devices
Cargue un archivo de reglas. El archivo debe estar en formato
JSONy no puede superar los 64 KB de tamaño.Puede hacer clic en Download Template para obtener una plantilla de reglas. El siguiente código muestra el contenido del archivo:
{ "key":"value" }key: El ID de un campo personalizado. Tipo de dato: String.
value: El valor correspondiente a la key. El valor debe estar en formato JSON.
File Signature Algorithm
El algoritmo de firma. Valores válidos: MD5 y SHA256.
Este parámetro es opcional. Puede usar el parámetro File Signature Algorithm junto con el parámetro Task File Issued to Devices.
Task File Issued to Devices
Cargue un archivo para la tarea personalizada.
Este parámetro es opcional. Puede usar el parámetro Task File Issued to Devices junto con el parámetro File Signature Algorithm.
Se admiten los siguientes formatos de archivo:
.bin,.apk,.tar,.gz,.zip,.gzipy.tar.gz. El archivo no puede superar los 1,000 MB de tamaño.ImportantePuede crear un archivo de reglas personalizado y especificar contenido a medida para un archivo de dispositivo según sus necesidades comerciales. Debe desarrollar la lógica de implementación de las reglas de la tarea y el contenido del dispositivo en los dispositivos especificados.
-
Task Configuration
Parámetro Descripción Job execution push configuration - Jobs per minute: Establezca la cantidad de trabajos que se enviarán por minuto.
- Push message type: Aplica únicamente a tareas personalizadas y a tareas de envío masivo de mensajes Pub Batch Message Push.
Valores válidos:
- QoS 0: Entrega como máximo una vez.
- QoS 1: Entrega al menos una vez. Si no se recibe un mensaje PUBACK para un mensaje QoS 1, IoT Platform reenvía el mensaje al dispositivo cuando este se reconecta.
Job execution timeout configuration Opcional. Si no se establece un tiempo de espera, el trabajo se ejecuta indefinidamente. Esta configuración aplica solo a tareas personalizadas. La cuenta regresiva comienza cuando el trabajo entra en estado In Progress. Si el trabajo no se completa dentro del periodo de tiempo de espera, su estado cambia a Timed Out y la ejecución se detiene.
Job start time
-
-
Después de crear la tarea, IoT Platform envía la información de la tarea a los dispositivos especificados mediante el topic
/sys/{productKey}/{deviceName}/thing/job/notify.Mensaje de ejemplo:
{ "id": "7542940", "version": "1.0", "params": { "task": { "taskId": "i5Ks6***pF010101", "status": "SENT", "jobDocument": {}, "jobFile":{ "signMethod":"Md5", "sign":"wssxff56dhdsd***", "fileUrl": "https://iotx-***.oss-cn-shanghai.aliyuncs.com/***.zip" } } } }jobDocument especifica el contenido de un archivo de reglas.
Tabla 1. Descripción de parámetros de solicitud
Parámetro
Tipo
Descripción
id
String
El ID del mensaje. Debe ser una cadena numérica única en el dispositivo. Valores válidos: 0 a 4294967295.version
String
La versión del protocolo. Establezca este parámetro en 1.0.params
Object
Los parámetros de solicitud del negocio.task
Object
Parámetros de la subtarea.
taskId
String
El ID de la subtarea, que es un identificador único global.
status
String
El estado de la subtarea.
SENT: Programada.
REMOVED: Eliminada.
CANCELLED: Cancelada.
jobDocument
Object
El documento de trabajo que describe las reglas de ejecución de la tarea.
NotaSi status es REMOVED o CANCELLED, este campo está vacío.
jobFile
Object
La información del archivo cargado al crear una tarea personalizada.
signMethod: El método de firma. Actualmente admite
Md5ySha256.sign: El parámetro de firma generado según el método de firma correspondiente.
fileUrl: La URL de descarga del archivo de tarea, válida por 1 hora.
Nota```html
Si status es REMOVED o CANCELLED, este campo está vacío.
-
Los dispositivos implementan el contenido del archivo de reglas basándose en la lógica de la tarea personalizada.
Si un dispositivo especificado está sin conexión y no puede recibir la información de la tarea, podrá solicitar tareas ejecutables desde el topic
/sys/{productKey}/{deviceName}/thing/job/getuna vez que vuelva a conectarse. Posteriormente, el dispositivo puede solicitar la información de la tarea personalizada para completarla.Solicitud de ejemplo para obtener tareas ejecutables:
{ "id": "123", "version": "1.0", "params": { "taskId": "$list" } }Solicitud de ejemplo para obtener información sobre una tarea:
{ "id": "123", "version": "1.0", "params": { "taskId": "i5Ks***F010101" } }Tabla 3. Descripción de parámetros de solicitud
Parámetro
Tipo
Descripción
id
String
El ID del mensaje. Debe ser una cadena numérica única en el dispositivo. Valores válidos: 0 a 4294967295.version
String
La versión del protocolo. Establezca este parámetro en 1.0.params
Object
Los parámetros de solicitud del negocio.taskId
String
Tres métodos de valor pueden devolver información de tareas con diferentes estados.
El ID de la subtarea: Devuelve información detallada sobre la tarea correspondiente al ID de trabajo.
$next: Devuelve información sobre una tarea ejecutable.$list: Devuelve una lista de tareas ejecutables, con un máximo de 10 de forma predeterminada.
Cuando IoT Platform recibe una solicitud, envía una respuesta al dispositivo correspondiente mediante el topic
/sys/{productKey}/{deviceName}/thing/job/get_reply.Respuesta de ejemplo que incluye las tareas devueltas:
{ "id": "1234", "code": 200, "data": { "statusDetails":{"devs":"test","status":"init"}, "taskId": "$list", "task":[ { "taskId": "i5Ks***", "status": "IN_PROGRESS" }, { "taskId": "i61s***", "status": "IN_PROGRESS" } ] } }Respuesta de ejemplo que incluye información devuelta sobre una tarea:
{ "id": "1234", "code": 200, "data": { "statusDetails":{"devs":"test","status":"init"}, "taskId": "i5Ks***F010101", "task":{ "taskId": "i5Ks***F010101", "status": "IN_PROGRESS", "jobDocument": {}, "jobFile":{ "signMethod":"Md5", "sign":"wssxff56dhdsd***", "fileUrl": "https://iotx-***.oss-cn-shanghai.aliyuncs.com/***.zip" } } } } -
Durante la ejecución de la tarea, un dispositivo especificado reporta el progreso a IoT Platform mediante el topic
/sys/{productKey}/{deviceName}/thing/job/update.Mensaje de ejemplo:
{ "id": "123", "version": "1.0", "params": { "taskId": "i5Ks***F010101", "status": "IN_PROGRESS", "statusDetails": { "key": "value" }, "progress": 50 } }Tabla 5. Descripción de parámetros de solicitud
Parámetro
Tipo
Descripción
id
String
El ID del mensaje. Debe ser una cadena numérica única en el dispositivo. Valores válidos: 0 a 4294967295.version
String
La versión del protocolo. Establezca este parámetro en 1.0.params
Object
Los parámetros de solicitud del negocio.taskId
String
El ID de la subtarea, que es un identificador único global.
status
String
El estado de la subtarea. Valores válidos:
SUCCEEDED: Completada correctamente.
FAILED: Error de ejecución.
IN_PROGRESS: En ejecución actualmente.
REJECTED: Ejecución rechazada.
statusDetails
Object
Detalles de estado definidos por el usuario y personalizables. Se pueden consultar en la página en la consola de IoT Platform.
progress
Integer
El porcentaje de progreso de ejecución de la subtarea.
-
En la página de su instancia, consulte las tareas creadas y su estado actual.
ImportanteUna tarea con estado
timed out
no se puede programar para ejecución nuevamente.
El temporizador inicia cuando se crea la tarea. Si no todas las subtareas se completan dentro de siete días, el estado de la tarea cambia a timed out.
Puede realizar las siguientes operaciones:
Cancelar una tarea que se encuentre en estado processing.
-
Hacer clic en View junto a una tarea para abrir su página de detalles, donde podrá consultar la información de la tarea y las estadísticas de ejecución de las subtareas.
Pestaña Descripción Task Information Permite consultar la información de la tarea, modificar la descripción de la tarea y la configuración de subtareas, así como descargar el archivo de tarea del dispositivo. Task Summary Permite ver estadísticas de subtareas agrupadas por estado. -
Haga clic en View junto a un dispositivo para ir a su página Device Details:
- En la pestaña Task, consulte la lista de todas las tareas del dispositivo.
- En la pestaña Device Log, haga clic en Go to View. En la pestaña cloud run log, seleccione cloud-to-device message en la lista desplegable workload type para consultar los registros de tareas del dispositivo.
- Si una subtarea falló, haga clic en Execution Details para ver la causa del error.
- Si una subtarea está en estado timed out o failed, haga clic en el botón de estado correspondiente para ver la lista de subtareas en ese estado.
Puede hacer clic en Rerun encima de la lista para volver a ejecutar todas las subtareas que agotaron el tiempo de espera o fallaron en la tarea actual.
-
Haga clic en View junto a un dispositivo para ir a su página Device Details:
-
Haga clic en Delete junto a la tarea objetivo y luego haga clic en OK.
AvisoAl eliminar una tarea de dispositivo, se borran todos los datos relacionados. Si algún servicio depende de esta tarea, podría dejar de estar disponible o su negocio podría verse afectado. Proceda con precaución.