Tâches et états d'exécution des tâches - AWS IoT Core

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.

Image montrant 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 SchedulingConfig dans la AWS IoT console ou dans l'CreateJobAPI ou l'CreateJobTemplateAPI. Lorsque vous démarrez une tâche planifiée contenant unstartTime, endTime, et endBehavoir spécifique, le statut de la tâche passe à SCHEDULED. Lorsque la tâche atteint la fenêtre sélectionnée startTime ou la startTime fenê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 de SCHEDULED à IN_PROGRESS et commence à déployer le document de tâche sur tous les appareils du groupe cible.

  • EN_COURS

    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 Limites des tâches.

    Note

    Lorsqu'une IN_PROGRESS tâ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 à jour SCHEDULED jusqu'à startTime la 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 deCOMPLETED.

    • Pour une tâche continue avec la configuration de planification facultative sélectionnée, ce qui suit est vrai :

      • Si un endTime a été fourni, une tâche continue atteindra le COMPLETED statut lorsqu'elle endTime sera terminée et que toutes les exécutions de tâches auront atteint le statut terminal.

      • Si un endTime n'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 COMPLETED lorsque toutes ses exécutions passent à un état terminal, tel que SUCCEEDED, 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, consultezLimites des tâches.

  • 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 devientDELETION_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.

États et source de l'exécution des 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 surQUEUED. L'exécution de la tâche reste au stade QUEUED jusqu'à 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_PROGRESS comme é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.

    Image montrant comment l'exécution d'une tâche en file d'attente passe à l'état IN_PROGRESS et comment une tâche peut être REJETÉE si l'appareil n'accepte pas la demande de création de tâche.
  • EN_COURS

    Si votre appareil IoT s'abonne à la main réservée Rubriques de tâche $notify et $notify-next que votre appareil invoque l'StartNextPendingJobExecutionAPI ou l'API dont le statut est UpdateJobExecution égal àIN_PROGRESS, AWS IoT Jobs définira le statut d'exécution de la tâche sur. IN_PROGRESS

    L'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 égal SUCCEEDED à 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.

    Image montrant comment l'exécution d'une tâche en cours peut échouer et comment réessayer l'exécution.
  • ÉCHEC

    Lorsque votre appareil ne parvient pas à effectuer l'opération à distance, il doit appeler l'UpdateJobExecutionAPI avec un statut égal Failed à 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.

    Image montrant comment l'exécution d'une tâche en cours peut échouer et comment recommencer l'exécution.
  • TIMED_OUT

    Lorsque votre appareil ne parvient pas à terminer une étape de travail alors que le statut est le casIN_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_OUT Vous 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 la inProgressTimeoutInMinutes proprié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.

    Image montrant comment l'exécution d'une tâche en cours peut expirer et comment recommencer l'exécution.
  • 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 CancelJob ou 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