Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Tâches et états d'exécution des tâches
Les sections suivantes décrivent le cycle de vie d'une AWS IoT tâche et le cycle de vie de son exécution.
États des tâches
Le schéma suivant montre les différents états d'une AWS IoT tâche.
Une tâche que vous créez à l'aide de AWS IoT Jobs peut présenter l'un des états suivants :
-
PLANIFIÉ
Lors de la création initiale de la tâche ou du modèle de tâche à l'aide de la AWS IoT console, CreateJobde CreateJobTemplatel'API ou de l'API, vous pouvez sélectionner la configuration de planification facultative
SchedulingConfigdans la AWS IoT console ou dans l'CreateJobAPI ou l'CreateJobTemplateAPI. Lorsque vous démarrez une tâche planifiée contenant unstartTime,endTime, etendBehaviorspécifique, le statut de la tâche passe àSCHEDULED. Lorsque la tâche atteint la fenêtre sélectionnéestartTimeou lastartTimefenêtre de maintenance suivante (si vous avez sélectionné le déploiement de la tâche pendant une fenêtre de maintenance), le statut passe deSCHEDULEDàIN_PROGRESSet commence à déployer le document de tâche sur tous les appareils du groupe cible. -
IN_PROGRESS
Lorsque vous créez une tâche à l'aide de la AWS IoT console ou de l'CreateJobAPI, le statut de la tâche passe à
IN_PROGRESS. Lors de la création, la fonction AWS IoT Jobs, commence à déployer des exécutions de tâches sur les appareils de votre groupe cible. Une fois que toutes les tâches ont été exécutées, la fonction AWS IoT Jobs attend que les appareils exécutent l'action à distance.Pour plus d'informations sur la simultanéité et les limites applicables aux tâches en cours, consultez AWS IoT Limites d'emplois.
Note
Lorsqu'une
IN_PROGRESStâche atteint la fin de la fenêtre de maintenance en cours, le déploiement du document de tâche s'arrête. La tâche sera mise à jourSCHEDULEDjusqu'àstartTimela prochaine fenêtre de maintenance. -
TERMINÉ
Une tâche continue est gérée de l'une des manières suivantes :
-
Pour une tâche continue sans la configuration de planification optionnelle sélectionnée, elle est toujours en cours et continue de fonctionner pour tous les nouveaux appareils ajoutés au groupe cible. Il n'atteindra jamais le statut de
COMPLETED. -
Pour une tâche continue avec la configuration de planification facultative sélectionnée, ce qui suit est vrai :
-
Si un
endTimea été fourni, une tâche continue atteindra leCOMPLETEDstatut lorsqu'elleendTimesera terminée et que toutes les exécutions de tâches auront atteint le statut terminal. -
Si un
endTimen'a pas été fourni dans la configuration de planification facultative, le travail continu continuera à effectuer le déploiement du document de travail.
-
Pour une tâche instantanée, le statut de la tâche change en
COMPLETEDlorsque toutes ses exécutions passent à un état terminal, tel queSUCCEEDED,FAILED,TIMED_OUT,REMOVED, ouCANCELED. -
-
ANNULÉE
Lorsque vous annulez une tâche à l'aide de la AWS IoT console, de l'CancelJobAPI ou duConfiguration d’annulation de la tâche , le statut de la tâche passe à
CANCELED. Lors de l'annulation d'une tâche, AWS IoT Jobs commence à annuler les exécutions de tâches créées précédemment.Pour plus d'informations sur la simultanéité et les limites applicables aux tâches annulées, consultezAWS IoT Limites d'emplois.
-
SUPPRESSION_EN_COURS
Lorsque vous supprimez une tâche à l'aide de la AWS IoT console ou de l'DeleteJobAPI, le statut de la tâche devient
DELETION_IN_PROGRESS. Lors de la suppression d'une tâche, AWS IoT Jobs commence à supprimer les exécutions de tâches créées précédemment. Une fois que toutes les exécutions de tâches ont été supprimées, celles-ci disparaissent de votre AWS compte.
États d'exécution de tâche
Le tableau suivant indique les différents états d'exécution d'une AWS IoT tâche et indique si le changement d'état est initié par le périphérique ou par les AWS IoT tâches.
| Etat d'exécution de Tâches | Initié par un appareil ? | Initié par AWS IoT Jobs ? | État du terminal ? | Peut être réessayé ? |
|---|---|---|---|---|
QUEUED |
Non | Oui | Non | Ne s’applique pas |
IN_PROGRESS |
Oui | Non | Non | Ne s’applique pas |
SUCCEEDED |
Oui | Non | Oui | Ne s’applique pas |
FAILED |
Oui | Non | Oui | Oui |
TIMED_OUT |
Non | Oui | Oui | Oui |
REJECTED |
Oui | Non | Oui | Non |
REMOVED |
Non | Oui | Oui | Non |
CANCELED |
Non | Oui | Oui | Non |
La section suivante décrit plus en détail les états d'exécution d'une tâche déployée lorsque vous créez une tâche avec AWS IoT Jobs.
-
QUEUED
Lorsque AWS IoT Jobs déploie une exécution de tâche pour un appareil cible, le statut d'exécution de la tâche est défini sur
QUEUED. L'exécution de la tâche reste au stadeQUEUEDjusqu'à ce que :-
Votre appareil reçoit l'exécution de la tâche, invoque les opérations API de la fonction Job et indique
IN_PROGRESScomme état. -
Vous annulez le travail ou son exécution, ou lorsque les critères d'interruption que vous avez spécifiés sont remplis et que le statut passe à
CANCELED. -
Votre appareil est retiré du groupe cible et son statut passe à
REMOVED.
-
-
IN_PROGRESS
Si votre appareil IoT s'abonne à la main réservée Rubriques de tâche
$notifyet$notify-nextque votre appareil invoque l'StartNextPendingJobExecutionAPI ou l'API dont le statut estUpdateJobExecutionégal àIN_PROGRESS, AWS IoT Jobs définira le statut d'exécution de la tâche sur.IN_PROGRESSL'
UpdateJobExecutionAPI peut être invoquée plusieurs fois avec un statut deIN_PROGRESS. Vous pouvez spécifier des détails supplémentaires sur les étapes d'exécution à l'aide de l'statusDetailsobjet.Note
Si vous créez plusieurs tâches pour chaque appareil, les AWS IoT tâches et le protocole MQTT ne garantissent pas l'ordre de livraison.
-
RÉUSSI
Lorsque votre appareil termine avec succès l'opération à distance, il doit appeler l'
UpdateJobExecutionAPI avec un statut égalSUCCEEDEDà pour indiquer que l'exécution de la tâche a réussi. AWS IoT Jobs est ensuite mis à jour et renvoie le statut d'exécution du travail sous la formeSUCCEEDED.
-
ÉCHEC
Lorsque votre appareil ne parvient pas à effectuer l'opération à distance, il doit appeler l'
UpdateJobExecutionAPI avec un statut égalFailedà pour indiquer que l'exécution de la tâche a échoué. AWS IoT Jobs est ensuite mis à jour et renvoie le statut d'exécution du travail sous la formeFailed. Vous pouvez réessayer d'exécuter cette tâche pour le périphérique à l'aide de Configuration de nouvelle tentative d’exécution de tâche.
-
TIMED_OUT
Lorsque votre appareil ne parvient pas à terminer une étape de travail alors que le statut est le cas
IN_PROGRESS, ou lorsqu'il ne parvient pas à terminer l'opération à distance dans le délai imparti, AWS IoT Jobs définit le statut d'exécution de la tâche sur.TIMED_OUTVous disposez également d'un chronomètre pour chaque étape d'une tâche en cours qui s'applique uniquement à l'exécution de la tâche. La durée du temporisateur en cours est spécifiée à l'aide de lainProgressTimeoutInMinutespropriété du Configuration du délai d’attente d’exécution de tâche. Vous pouvez réessayer d'exécuter cette tâche pour le périphérique à l'aide du Configuration de nouvelle tentative d’exécution de tâche.
-
REFUSÉE
Lorsque votre appareil reçoit une demande non valide ou incompatible, il doit appeler l'
UpdateJobExecutionAPI avec un statut deREJECTED. AWS IoT Jobs est ensuite mis à jour et renvoie le statut d'exécution du travail sous la formeREJECTED. -
SUPPRIMÉ
Lorsque votre appareil n'est plus une cible valide pour l'exécution de la tâche, par exemple lorsqu'il est détaché d'un groupe d'objets dynamique, la fonction AWS IoT Jobs définit le statut d'exécution de la tâche à
REMOVED. Vous pouvez rattacher l'objet à votre groupe cible et recommencer l'exécution de la tâche pour l'appareil. -
ANNULÉE
Lorsque vous annulez un travail ou annulez l'exécution d'un travail à l'aide de la console
CancelJobou de l'CancelJobExecutionAPI or, ou lorsque les critères d'abandon spécifiés à l'aide du Configuration d’annulation de la tâche sont remplis, AWS IoT Jobs annule le travail et définit le statut d'exécution du travail sur.CANCELED