

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
<a name="jobs-devices"></a>

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"
}
```

## À l’aide du protocole MQTT
<a name="jobs-using-mqtt"></a>

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](protocols.md).

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-name`Voici le nom d'une demande telle que `Get` et le sujet peut être :`$aws/things/myThing/jobs/get`. AWS IoTJobs 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-name`Voici 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 :
+ Mettre à jour le statut d'une exécution de tâche en appelant l'API [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_UpdateJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_UpdateJobExecution.html).
+ Interroger le statut d'une exécution de tâche en appelant l'API [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_DescribeJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_DescribeJobExecution.html).
+ Récupérer la liste des exécutions de tâche en attente en appelant l'API [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_GetPendingJobExecutions.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_GetPendingJobExecutions.html).
+ Récupérer la prochaine exécution de tâche en attente en appelant l’API [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_DescribeJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_DescribeJobExecution.html) avec `jobId` en tant que `$next`.
+ Obtenir et démarrer la prochaine exécution de tâche en attente en appelant l'API [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_StartNextPendingJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_StartNextPendingJobExecution.html).

## À l’aide de HTTP Signature Version 4
<a name="jobs-using-http-v4"></a>

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 la CLI AWS SDKs et. Pour plus d'informations sur ces outils, consultez la section [Référence des AWS CLI commandes : iot-jobs-data](https://docs.aws.amazon.com/cli/latest/reference/iot-jobs-data/index.html) ou [AWSSDKs et Outils](https://aws.amazon.com/tools/#sdk) 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 ...` 

## À l’aide de HTTP TLS
<a name="jobs-using-http-tls"></a>

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
<a name="programming-devices"></a>

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 pourAWS 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](https://github.com/aws/aws-iot-device-sdk-js#jobsAgent).

**Topics**
+ [Programmation des appareils pour une utilisation avec Jobs](#programming-devices)
+ [Flux de travail des appareils](jobs-workflow-device-online.md)
+ [Flux de travail des tâches](jobs-workflow-jobs-online.md)
+ [Notifications Jobs](jobs-comm-notifications.md)