

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# AWS IoT operazioni API per lavori
<a name="jobs-api"></a>

AWS IoT L'API Jobs può essere utilizzata per una delle seguenti categorie:
+ Attività amministrative, come la gestione e il controllo dei processi. Questo è il *piano di controllo*.
+ Dispositivi che eseguono questi processi. Questo è il *piano dati* che permette di inviare e ricevere dati.

Per la gestione e il controllo dei processi viene usata un'API del protocollo HTTPS. I dispositivi possono usare un'API del protocollo MQTT o HTTPS. L'API del piano di controllo è progettata per un basso volume di chiamate, come avviene in genere quando si creano e si monitorano i processi. In genere apre una connessione per una singola richiesta e quindi chiude la connessione dopo la ricezione della risposta. L'API HTTPS e MQTT del piano dati consente il polling lungo. Queste operazioni API sono progettate per grandi quantità di traffico, che può essere dimensionato fino a milioni di dispositivi.

Ogni API HTTPS di AWS IoT Jobs ha un comando corrispondente che consente di chiamare l'API da AWS Command Line Interface (AWS CLI). I comandi sono in caratteri minuscoli, con trattini tra le parole che compongono il nome dell'API. È ad esempio possibile richiamare l'API `CreateJob` nell'interfaccia a riga di comando digitando:

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

Se si verifica un errore durante un'operazione, viene fornita una risposta di errore contenente le informazioni sull'errore.

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

Contiene informazioni su un errore che si è verificato durante un'operazione del servizio AWS IoT Jobs.

L'esempio seguente mostra la sintassi di questa operazione:

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

Di seguito è riportata una descrizione di `ErrorResponse`:

`code`  
ErrorCode può essere impostato su:    
InvalidTopic  
La richiesta è stata inviata a un argomento nel namespace AWS IoT Jobs che non è mappato a nessuna operazione API.  
InvalidJson  
Non è stato possibile interpretare i contenuti della richiesta come contenuto JSON valido con codifica UTF-8.  
InvalidRequest  
I contenuti della richiesta non sono validi. Ad esempio, questo codice viene restituito quando una richiesta `UpdateJobExecution` contiene dettagli sullo stato non validi. Il messaggio contiene dettagli sull'errore.  
InvalidStateTransition  
Un aggiornamento ha tentato di modificare l'esecuzione del processo in uno stato non valido a causa dello stato attuale dell'esecuzione del processo. Ad esempio, un tentativo di modificare una richiesta dallo stato SUCCEEDED a quello IN\$1PROGRESS. In questo caso, il corpo del messaggio di errore contiene anche il campo `executionState`.  
ResourceNotFound  
Il valore di `JobExecution` specificato dall'argomento della richiesta non esiste.   
VersionMismatch  
La versione prevista specificata nella richiesta non corrisponde alla versione dell'esecuzione del lavoro nel servizio AWS IoT Jobs. In questo caso, il corpo del messaggio di errore contiene anche il campo `executionState`.  
InternalError  
Si è verificato un errore interno durante l'elaborazione della richiesta.  
RequestThrottled  
La richiesta è stata sottoposta a throttling.  
TerminalStateReached  
Si verifica quando viene eseguito un comando per descrivere un processo in un processo che si trova in uno stato terminale.

`message`  
Stringa di messaggio di errore.

`clientToken`  
Stringa arbitraria usata per mettere in relazione una richiesta con la relativa risposta.

`timestamp`  
Tempo, in secondi, dall'epoca (Unix epoch).

`executionState`  
Oggetto [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). Questo campo è incluso solo quando il campo `code` ha il valore `InvalidStateTransition` o `VersionMismatch`. In questi casi, non è necessario eseguire una richiesta `DescribeJobExecution` separata per ottenere i dati sullo stato dell'esecuzione del processo corrente.

**Topics**
+ [Tipi di dati e API di gestione e controllo dei processi](jobs-management-control-api.md)
+ [Tipi di dati e operazioni API MQTT e HTTPS per i dispositivi per il servizio Jobs](jobs-mqtt-https-api.md)