Si les tâches de configuration par lot ou les appels de service par lot ne répondent plus à vos besoins métier, créez des tâches personnalisées et configurez des règles sur mesure pour couvrir divers scénarios. Cette rubrique explique comment créer une tâche personnalisée et consulter ses informations. Elle décrit également les topics utilisés lors de l'exécution de la tâche ainsi que les formats de message correspondants.
Prérequis
Une tâche doit être déployée sur un appareil et la fonctionnalité de gestion associée doit être développée. Pour plus d'informations, consultez la rubrique Présentation.
Processus de gestion des tâches
-
Créez une tâche personnalisée.
Dans la console IoT Platform, accédez à votre instance. Dans le volet de navigation de gauche, sélectionnez . Sur la page Tasks, cliquez sur Create Task.
-
Sur la page Create Task, configurez les paramètres dans les étapes Create Task et Task Schedule. Ensuite, cliquez sur Complete. Placez le pointeur sur l'icône
située à côté d'un paramètre pour afficher les informations relatives à ce dernier.-
Create Task
Parameter
Description
Task Name
Spécifiez un nom valide pour la tâche. Vous pouvez définir un nom personnalisé.
Task Type
Définissez le paramètre sur Custom Task.
Task Description
Indiquez des informations telles que l'objectif de la tâche, ce qui permet d'identifier facilement les tâches.
Destination Device, Product, or Group
Sélectionnez les appareils cibles de la tâche. Le choix peut se faire par appareil, produit ou groupe.Important Si vous sélectionnez les appareils par groupe, vous ne pouvez pas choisir un groupe dynamique.Task Execution Rules Issued to Devices
Téléchargez un fichier de règles. Celui-ci doit être au format
JSONet ne pas dépasser 64 Ko.Cliquez sur Download Template pour obtenir un modèle de règle. Le code suivant illustre le contenu du fichier :
{ "key":"value" }key : ID d'un champ personnalisé. Type de données : String.
value : Valeur correspondant à la key. La valeur doit être au format JSON.
File Signature Algorithm
Algorithme de signature. Valeurs valides : MD5 et SHA256.
Ce paramètre est facultatif. Il s'utilise conjointement avec le paramètre Task File Issued to Devices.
Task File Issued to Devices
Téléchargez un fichier pour la tâche personnalisée.
Ce paramètre est facultatif. Il s'utilise conjointement avec le paramètre File Signature Algorithm.
Les formats de fichiers suivants sont pris en charge :
.bin,.apk,.tar,.gz,.zip,.gzipet.tar.gz. La taille du fichier ne doit pas excéder 1 000 Mo.ImportantVous pouvez créer un fichier de règles personnalisé et spécifier un contenu adapté aux appareils selon vos besoins métier. Vous devez développer la logique d'implémentation des règles de tâche ainsi que le contenu destiné aux appareils spécifiés.
-
Task Configuration
Parameter Description Job execution push configuration - Jobs per minute : définissez le nombre de jobs à envoyer par minute.
- Push message type : s'applique uniquement aux tâches personnalisées et aux tâches Pub Batch Message Push.
Valeurs valides :
- QoS 0 : livraison au plus une fois.
- QoS 1 : livraison au moins une fois. Si aucun message PUBACK n'est reçu pour un message QoS 1, IoT Platform renvoie le message à l'appareil lors de sa reconnexion.
Job execution timeout configuration Facultatif. Si aucun délai d'expiration n'est défini, le job s'exécute indéfiniment. Ce paramètre s'applique uniquement aux tâches personnalisées. Le compte à rebours démarre lorsque le job passe à l'état In Progress. Si le job n'est pas terminé avant l'expiration du délai, son statut devient Timed Out et l'exécution s'arrête.
Job start time
-
-
Une fois la tâche créée, IoT Platform envoie les informations de tâche aux appareils spécifiés via le topic
/sys/{productKey}/{deviceName}/thing/job/notify.Exemple de message :
{ "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" } } } }Le paramètre jobDocument spécifie le contenu d'un fichier de règles.
Tableau 1. Description des paramètres de requête
Parameter
Type
Description
id
String
ID du message. Doit être une chaîne numérique unique sur l'appareil. Valeurs valides : 0 à 4294967295.version
String
Version du protocole. Définissez ce paramètre sur 1.0.params
Object
Paramètres de la requête métier.task
Object
Paramètres de la sous-tâche.
taskId
String
ID de la sous-tâche, identifiant unique global.
status
String
Statut de la sous-tâche.
SENT : planifiée.
REMOVED : supprimée.
CANCELLED : annulée.
jobDocument
Object
Document de job décrivant les règles d'exécution de la tâche.
RemarqueSi le champ status est REMOVED ou CANCELLED, ce champ est vide.
jobFile
Object
Informations sur le fichier téléchargé lors de la création d'une tâche personnalisée.
signMethod : méthode de signature. Les valeurs
Md5etSha256sont actuellement prises en charge.sign : paramètre de signature généré selon la méthode correspondante.
fileUrl : URL de téléchargement du fichier de tâche, valable pendant 1 heure.
Remarque```html
Si le champ status est REMOVED ou CANCELLED, ce champ est vide.
-
Les appareils exécutent le contenu du fichier de règles selon la logique de la tâche personnalisée.
Si un appareil spécifié est hors ligne et ne peut pas recevoir les informations de tâche, il peut demander les tâches exécutables via le topic
/sys/{productKey}/{deviceName}/thing/job/getune fois reconnecté. L'appareil peut ensuite récupérer les détails de la tâche personnalisée afin de la finaliser.Exemple de requête pour obtenir les tâches exécutables :
{ "id": "123", "version": "1.0", "params": { "taskId": "$list" } }Exemple de requête pour obtenir les informations d'une tâche :
{ "id": "123", "version": "1.0", "params": { "taskId": "i5Ks***F010101" } }Tableau 3. Description des paramètres de requête
Parameter
Type
Description
id
String
ID du message. Doit être une chaîne numérique unique sur l'appareil. Valeurs valides : 0 à 4294967295.version
String
Version du protocole. Définissez ce paramètre sur 1.0.params
Object
Paramètres de la requête métier.taskId
String
Trois méthodes de valeur permettent de renvoyer les informations de tâche avec différents statuts.
ID de la sous-tâche : renvoie les détails de la tâche correspondant à l'ID de job.
$next: renvoie les informations d'une tâche exécutable.$list: renvoie une liste des tâches exécutables, avec un maximum de 10 par défaut.
Après réception de la requête, IoT Platform envoie une réponse à l'appareil concerné via le topic
/sys/{productKey}/{deviceName}/thing/job/get_reply.Exemple de réponse incluant les tâches renvoyées :
{ "id": "1234", "code": 200, "data": { "statusDetails":{"devs":"test","status":"init"}, "taskId": "$list", "task":[ { "taskId": "i5Ks***", "status": "IN_PROGRESS" }, { "taskId": "i61s***", "status": "IN_PROGRESS" } ] } }Exemple de réponse incluant les informations d'une tâche :
{ "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" } } } } -
Pendant l'exécution de la tâche, l'appareil spécifié soumet la progression de celle-ci à IoT Platform via le topic
/sys/{productKey}/{deviceName}/thing/job/update.Exemple de message :
{ "id": "123", "version": "1.0", "params": { "taskId": "i5Ks***F010101", "status": "IN_PROGRESS", "statusDetails": { "key": "value" }, "progress": 50 } }Tableau 5. Description des paramètres de requête
Parameter
Type
Description
id
String
ID du message. Doit être une chaîne numérique unique sur l'appareil. Valeurs valides : 0 à 4294967295.version
String
Version du protocole. Définissez ce paramètre sur 1.0.params
Object
Paramètres de la requête métier.taskId
String
ID de la sous-tâche, identifiant unique global.
status
String
Statut de la sous-tâche. Valeurs valides :
SUCCEEDED : terminée avec succès.
FAILED : échec de l'exécution.
IN_PROGRESS : en cours d'exécution.
REJECTED : exécution rejetée.
statusDetails
Object
Détails de statut personnalisables définis par l'utilisateur. Ils sont visibles sur la page de la console IoT Platform.
progress
Integer
Pourcentage d'avancement de l'exécution de la sous-tâche.
-
Sur la page de votre instance, consultez les tâches créées et leur statut actuel.
ImportantUne tâche dont le statut est
timed out
ne peut pas être replanifiée pour exécution.
Le minuteur démarre à la création de la tâche. Si toutes les sous-tâches ne sont pas terminées dans un délai de sept jours, le statut de la tâche passe à timed out.
Vous pouvez effectuer les opérations suivantes :
Annulez une tâche dont le statut est processing.
-
Cliquez sur View à côté d'une tâche pour ouvrir sa page de détails, où vous pouvez consulter les informations de tâche et les statistiques d'exécution des sous-tâches.
Tab Description Task Information Consultez les informations de tâche, modifiez la description de la tâche et la configuration des sous-tâches, et téléchargez le fichier de tâche de l'appareil. Task Summary Affichez les statistiques des sous-tâches regroupées par statut. -
Cliquez sur View à côté d'un appareil pour accéder à sa page Device Details :
- Dans l'onglet Task, affichez la liste de toutes les tâches de l'appareil.
- Dans l'onglet Device Log, cliquez sur Go to View. Dans l'onglet cloud run log, sélectionnez cloud-to-device message dans la liste déroulante workload type pour afficher les journaux des tâches de l'appareil.
- En cas d'échec d'une sous-tâche, cliquez sur Execution Details pour voir la cause de l'échec.
- Si une sous-tâche est dans l'état timed out ou failed, cliquez sur le bouton de statut correspondant pour afficher la liste des sous-tâches dans cet état.
Cliquez sur Rerun au-dessus de la liste pour relancer toutes les sous-tâches ayant expiré ou échoué pour la tâche actuelle.
-
Cliquez sur View à côté d'un appareil pour accéder à sa page Device Details :
-
Cliquez sur Delete à côté de la tâche cible, puis sur OK.
AvertissementLa suppression d'une tâche d'appareil efface toutes les données associées. Si des services dépendent de cette tâche, ils peuvent devenir indisponibles ou votre activité risque d'être impactée. Agissez avec prudence.