Appareils et 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.

Appareils et tâches

Les appareils peuvent communiquer avec les AWS IoT tâches à l'aide de MQTT, de la signature HTTP version 4 ou du protocole HTTP TLS. Pour déterminer le point de terminaison à utiliser lorsque votre appareil communique avec AWS IoT Jobs, exécutez la DescribeEndpoint commande. Par exemple, si vous exécutez la commande suivante :

aws iot describe-endpoint --endpoint-type iot:Data-ATS

vous verrez une réponse comme celle-ci :

{ "endpointAddress": "a1b2c3d4e5f6g7-ats.iot.us-west-2.amazonaws.com" }

Les appareils peuvent communiquer avec les AWS IoT Jobs à l'aide du protocole MQTT. Les appareils s'abonnent aux rubriques MQTT pour être informés des nouvelles tâches et recevoir des réponses du service AWS IoT Jobs. Les appareils publient sur les rubriques MQTT pour interroger ou mettre à jour l’état de lancement d’une tâche. Chaque appareil a sa propre rubrique MQTT générale. Pour plus d'informations sur la publication et l'abonnement aux rubriques MQTT, consultez Protocoles de communication des appareils.

Avec cette méthode de communication, votre appareil utilise son certificat et sa clé privée spécifiques pour s'authentifier auprès de Jobs. AWS IoT

Vos appareils peuvent s’abonner aux rubriques suivantes. thing-name est le nom de l’élément associé à l’appareil.

  • $aws/things/thing-name/jobs/notify

    Abonnez-vous à cette rubrique pour être averti lorsqu’un lancement de tâche est ajouté ou supprimé de la liste des lancements de tâches en attente.

  • $aws/things/thing-name/jobs/notify-next

    Abonnez-vous à cette rubrique pour vous avertir lorsque l’exécution de la prochaine tâche en attente a changé.

  • $aws/things/thing-name/jobs/request-name/accepted

    Le service AWS IoT Jobs publie des messages de réussite et d'échec sur un sujet MQTT. La rubrique est formée en ajoutant accepted ou rejected à la rubrique utilisée pour effectuer la demande. request-nameVoici le nom d'une demande telle que Get et le sujet peut être :$aws/things/myThing/jobs/get. AWS IoT Jobs publie ensuite des messages de réussite sur le $aws/things/myThing/jobs/get/accepted sujet.

  • $aws/things/thing-name/jobs/request-name/rejected

    request-nameVoici le nom d’une demande telle que Get. Si la demande échoue, AWS IoT Jobs publie des messages d'échec sur le $aws/things/myThing/jobs/get/rejected sujet.

Vous pouvez également utiliser les opérations d’API HTTPS suivantes :

Les appareils peuvent communiquer avec AWS IoT Jobs à l'aide de la signature HTTP version 4 sur le port 443. Il s'agit de la méthode utilisée par les kits SDK AWS et l’interface de ligne de commande. Pour plus d'informations sur ces outils, consultez la section Référence des AWS CLI commandes : iot-jobs-data ou AWS SDK et outils et reportez-vous à la IotJobsDataPlane section correspondant à votre langue préférée.

Avec cette méthode de communication, votre appareil utilise les informations d'identification IAM pour s'authentifier auprès de Jobs. AWS IoT

Les commandes suivantes sont disponibles à l'aide de cette méthode :

  • DescribeJobExecution

    aws iot-jobs-data describe-job-execution ...

  • GetPendingJobExecutions

    aws iot-jobs-data get-pending-job-executions ...

  • StartNextPendingJobExecution

    aws iot-jobs-data start-next-pending-job-execution ...

  • UpdateJobExecution

    aws iot-jobs-data update-job-execution ...

Les appareils peuvent communiquer avec AWS IoT Jobs à l'aide du protocole HTTP TLS sur le port 8443 à l'aide d'un client logiciel tiers prenant en charge ce protocole.

Avec cette méthode, votre appareil utilise l'authentification basée sur le certificat X.509 (par exemple, à l'aide du certificat et de la clé privée qui lui sont propres.)

Les commandes suivantes sont disponibles à l'aide de cette méthode :

  • DescribeJobExecution

  • GetPendingJobExecutions

  • StartNextPendingJobExecution

  • UpdateJobExecution

Programmation des appareils pour une utilisation avec Jobs

Les exemples de cette section utilisent MQTT pour illustrer la façon dont un appareil utilise le service AWS IoT Jobs. Vous pouvez également utiliser l'API ou les commandes CLI correspondantes. Pour ces exemples, nous supposons qu’un appareil appelé MyThing qui s’abonne aux rubriques MQTT suivantes :

  • $aws/things/MyThing/jobs/notify (ou $aws/things/MyThing/jobs/notify-next)

  • $aws/things/MyThing/jobs/get/accepted

  • $aws/things/MyThing/jobs/get/rejected

  • $aws/things/MyThing/jobs/jobId/get/accepted

  • $aws/things/MyThing/jobs/jobId/get/rejected

Si vous utilisez la signature de code pour AWS IoT, le code de votre appareil doit vérifier la signature de votre fichier de code. La signature se trouve dans le document de tâche dans la propriété codesign. Pour plus d'informations sur la vérification d'une signature de fichier de code, consultez Exemple d'agent d'appareil.