Flux de travail des appareils - 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.

Flux de travail des appareils

Un appareil peut gérer les tâches qu’il exécute de l’une des manières suivantes.

  • Trouvez le prochain emploi
    1. Lorsqu'un appareil est mis en ligne pour la première fois, il doit s'abonner à la rubrique notify-next de l'appareil.

    2. Appelez l'API MQTT DescribeJobExecution avec le jobId $next pour obtenir la tâche suivante, son document de tâche et d'autres détails, y compris tout état enregistré dans statusDetails. Si le document de tâche possède une signature de fichier de code, vous devez vérifier la signature avant de continuer le traitement de la demande de tâche.

    3. Appelez l'API MQTT UpdateJobExecution pour mettre à jour le statut de la tâche. Ou, pour combiner cette étape et la précédente en un seul appel, l'appareil peut appeler StartNextPendingJobExecution.

    4. Le cas échéant, vous pouvez ajouter un minuteur d'étape en définissant une valeur pour stepTimeoutInMinutes lorsque vous appelez UpdateJobExecution ou StartNextPendingJobExecution.

    5. Exécutez les actions spécifiées par le document de tâche à l'aide de l'API MQTT UpdateJobExecution pour faire état de l'avancement de la tâche.

    6. Continuez de surveiller l'exécution de tâche en appelant l'API MQTT DescribeJobExecution avec ce jobId. Si l’exécution de la tâche est supprimée, DescribeJobExecution renvoie un ResourceNotFoundException.

      L’appareil doit être en mesure de revenir à un état valide si l’exécution de la tâche est annulée ou supprimée pendant que l’appareil exécute la tâche.

    7. Une fois que la tâche est terminée, appelez l'API MQTT UpdateJobExecution pour mettre à jour le statut de la tâche et faire état de sa réussite ou de son échec.

    8. Comme le statut d'exécution de cette tâche est passé à un état terminal, la prochaine tâche disponible pour une exécution (le cas échéant) change également. L'appareil est averti que la prochaine exécution de tâche en attente a changé. À ce stade, l'appareil doit continuer comme décrit à l'étape 2.

    Si l’appareil reste en ligne, il continue de recevoir des notifications concernant l’exécution de la prochaine tâche en attente. Cela inclut ses données d’exécution de tâche, lorsqu’elle termine une tâche ou lorsqu’une nouvelle tâche en attente est ajoutée. Dans ce cas, l'appareil continue comme décrit à l'étape 2.

  • Choisissez parmi les tâches disponibles
    1. Lorsqu'un appareil est mis en ligne pour la première fois, il doit s'abonner à la rubrique notify de l'objet.

    2. Appelez l'API MQTT GetPendingJobExecutions pour obtenir la liste des exécutions de tâche en attente.

    3. Si la liste contient une ou plusieurs exécutions de tâche, sélectionnez-en une.

    4. Appelez l'API MQTT DescribeJobExecution pour obtenir le document de tâche et autres détails, y compris tout état enregistré dans statusDetails.

    5. Appelez l'API MQTT UpdateJobExecution pour mettre à jour le statut de la tâche. Si, dans cette commande, le champ includeJobDocument a la valeur true, l'appareil peut ignorer l'étape précédente et récupérer le document de tâche à ce stade.

    6. Le cas échéant, vous pouvez ajouter un minuteur d'étape en définissant une valeur pour stepTimeoutInMinutes lorsque vous appelez UpdateJobExecution.

    7. Exécutez les actions spécifiées par le document de tâche à l'aide de l'API MQTT UpdateJobExecution pour faire état de l'avancement de la tâche.

    8. Continuez de surveiller l'exécution de tâche en appelant l'API MQTT DescribeJobExecution avec ce jobId. Si l’exécution de la tâche est annulée ou supprimée alors que l’appareil est en cours d’exécution, ce dernier doit être en mesure de retrouver un état valide.

    9. Une fois que la tâche est terminée, appelez l'API MQTT UpdateJobExecution pour mettre à jour le statut de la tâche et faire état de sa réussite ou de son échec.

    Si l'appareil demeure en ligne, il est averti de toutes les exécutions de tâche en attente chaque fois qu'une nouvelle exécution de tâche en attente devient disponible. Dans ce cas, l'appareil continue comme décrit à l'étape 2.

Si l’appareil n’est pas en mesure d’exécuter la tâche, il doit appeler l’API MQTT UpdateJobExecution pour mettre à jour le statut de la tâche avec la valeur REJECTED.