

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.

# AWS IoT opérations de l'API jobs
<a name="jobs-api"></a>

AWS IoT L'API Jobs peut être utilisée pour l'une des catégories suivantes :
+ Tâches administratives telles que la gestion et le contrôle des emplois. Voici le *plan de contrôle*.
+ Appareils effectuant ces tâches. Il s’agit du *plan de données* qui vous permet d’envoyer et de recevoir des données.

La gestion et le contrôle des tâches utilisent une API du protocole HTTPS. Les appareils peuvent utiliser une API MQTT ou une API du protocole HTTPS. L’API du plan de contrôle est conçue pour un faible volume d’appels lors de la création et du suivi des tâches. Elle ouvre généralement une connexion pour une seule demande, puis la ferme après réception de la réponse. Le plan de données HTTPS et l’API MQTT permettent de longues interrogations. Ces opérations d’API sont conçues pour d’importantes quantités de trafic qui peuvent mettre à l’échelle plusieurs millions d’appareils.)

Chaque API HTTPS AWS IoT Jobs possède une commande correspondante qui vous permet d'appeler l'API depuis le AWS Command Line Interface (AWS CLI). Les commandes sont en minuscules, avec un trait d'union entre les mots qui composent le nom de l'API. Par exemple, vous pouvez appeler l'API `CreateJob` sur l'interface de ligne de commande en tapant :

```
aws iot create-job ...
```

Si une erreur se produit pendant une opération, vous obtenez une réponse d’erreur contenant des informations sur l’erreur.

## ErrorResponse
<a name="jobs-mqtt-error-response"></a>

Contient les informations sur une erreur qui s'est produite au cours d'une opération du service AWS IoT Jobs.

L’exemple suivant illustre la syntaxe de cette opération :

```
{
    "code": "ErrorCode",
    "message": "string",
    "clientToken": "string",
    "timestamp": timestamp,
    "executionState": JobExecutionState
}
```

Voici une description de ce `ErrorResponse` :

`code`  
ErrorCode peut être réglé sur :    
InvalidTopic  
La demande a été envoyée à une rubrique de l'espace de noms AWS IoT Jobs qui ne correspond à aucune opération d'API.  
InvalidJson  
Le contenu de la demande n'a pas pu être interprété comme JSON codé en UTF-8 valide.  
InvalidRequest  
Le contenu de la demande n’était pas valide. Par exemple, ce code est renvoyé lorsqu'une demande `UpdateJobExecution` contient des détails d'état non valides. Le message contient des détails sur l'erreur.  
InvalidStateTransition  
Une mise à jour a tenté de faire passer l’exécution de la tâche à un état non valide en raison de l’état actuel de l’exécution de la tâche. Par exemple, une tentative de modification d’une demande dont l’état est SUCCEDED par le statut IN\$1PROGRESS. Dans ce cas, le corps du message d'erreur contient aussi le champ `executionState`.  
ResourceNotFound  
La valeur `JobExecution` spécifiée par la rubrique de la demande n’existe pas.   
VersionMismatch  
La version attendue spécifiée dans la demande ne correspond pas à la version de l'exécution de la tâche dans le service AWS IoT Jobs. Dans ce cas, le corps du message d'erreur contient aussi le champ `executionState`.  
InternalError  
Une erreur interne s'est produite pendant le traitement de la demande.  
RequestThrottled  
La demande a été limitée.  
TerminalStateReached  
Se produit quand une commande pour décrire une tâche est exécutée sur une tâche qui se trouve dans un état terminal.

`message`  
Chaîne de message d'erreur.

`clientToken`  
Chaîne arbitraire utilisée pour mettre en corrélation une demande et sa réponse.

`timestamp`  
Nombre de secondes depuis la date epoch Unix.

`executionState`  
Un objet [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecutionState.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecutionState.html). Ce champ est inclus uniquement lorsque le champ `code` a la valeur `InvalidStateTransition` ou `VersionMismatch`. Il est donc inutile dans ces cas-là d'effectuer une demande `DescribeJobExecution` distincte pour obtenir les données du statut d'exécution de tâche en cours.

**Topics**
+ [Types de données de gestion et de contrôle des tâches d’API](jobs-management-control-api.md)
+ [Opérations des API MQTT et HTTPS de l’appareil et types de données](jobs-mqtt-https-api.md)