

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)

# Tipi di dati e API di gestione e controllo dei processi
<a name="jobs-management-control-api"></a>

**Topics**
+ [Tipi di dati di gestione e controllo dei processi](#jobs-control-plane-data-types)
+ [Operazioni API di gestione e controllo dei processi](#jobs-http-api)

Per determinare il *endpoint-url* parametro per i comandi CLI, esegui questo comando.

```
aws iot describe-endpoint --endpoint-type=iot:Jobs
```

Questo comando restituisce il seguente output.

```
{
"endpointAddress": "account-specific-prefix.jobs.iot.aws-region.amazonaws.com"
}
```

**Nota**  
L'endpoint di Jobs non supporta ALPN `x-amzn-http-ca`.  
Se utilizzi endpoint dual-stack (IPv6 and IPv6), usa l'endpoint. `iot:Data-ATS` L'endpoint supporta solo. `iot:Jobs` IPv4

## Tipi di dati di gestione e controllo dei processi
<a name="jobs-control-plane-data-types"></a>

I seguenti tipi di dati vengono utilizzati dalle applicazioni di gestione e controllo per comunicare con AWS IoT Jobs.

### Processo
<a name="jobs-job"></a>

L'oggetto `Job` contiene i dettagli di un processo. L'esempio seguente mostra la sintassi:

```
{
    "jobArn": "string", 
    "jobId": "string", 
    "status": "IN_PROGRESS|CANCELED|SUCCEEDED", 
    "forceCanceled": boolean,
    "targetSelection": "CONTINUOUS|SNAPSHOT",
    "comment": "string",
    "targets": ["string"], 
    "description": "string",
    "createdAt": timestamp,
    "lastUpdatedAt": timestamp,
    "completedAt": timestamp,
    "jobProcessDetails": {
        "processingTargets": ["string"],
        "numberOfCanceledThings": long, 
        "numberOfSucceededThings": long, 
        "numberOfFailedThings": long,
        "numberOfRejectedThings": long, 
        "numberOfQueuedThings": long, 
        "numberOfInProgressThings": long, 
        "numberOfRemovedThings": long, 
        "numberOfTimedOutThings": long
    }, 
    "presignedUrlConfig": {
        "expiresInSec": number, 
        "roleArn": "string"
    }, 
    "jobExecutionsRolloutConfig": { 
        "exponentialRate": { 
           "baseRatePerMinute": integer,
           "incrementFactor": integer,
           "rateIncreaseCriteria": { 
              "numberOfNotifiedThings": integer, // Set one or the other
              "numberOfSucceededThings": integer // of these two values.
           },
           "maximumPerMinute": integer
      }
    },    
    "abortConfig": { 
       "criteriaList": [ 
          { 
             "action": "string",
             "failureType": "string",
             "minNumberOfExecutedThings": integer,
             "thresholdPercentage": integer
          }
       ]
    },
    "SchedulingConfig": { 
      "startTime": string
      "endTime": string
      "timeZone": string


      "endTimeBehavior": string

   },
    "timeoutConfig": {
        "inProgressTimeoutInMinutes": long
    }
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/iot/latest/apireference/API_Job.html](https://docs.aws.amazon.com/iot/latest/apireference/API_Job.html) o [https://docs.aws.amazon.com/cli/latest/reference/iot/job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/job.html). 

### JobSummary
<a name="jobs-job-summary"></a>

L'oggetto `JobSummary` contiene il riepilogo di un processo. L'esempio seguente mostra la sintassi:

```
{
    "jobArn": "string", 
    "jobId": "string",
    "status": "IN_PROGRESS|CANCELED|SUCCEEDED|SCHEDULED", 
    "targetSelection": "CONTINUOUS|SNAPSHOT",
    "thingGroupId": "string",
    "createdAt": timestamp, 
    "lastUpdatedAt": timestamp, 
    "completedAt": timestamp
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/iot/latest/apireference/API_JobSummary.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobSummary.html) o [https://docs.aws.amazon.com/cli/latest/reference/iot/job-summary.html](https://docs.aws.amazon.com/cli/latest/reference/iot/job-summary.html).

### JobExecution
<a name="jobs-job-execution"></a>

L'oggetto `JobExecution` rappresenta l'esecuzione di un processo in un dispositivo. L'esempio seguente mostra la sintassi:

**Nota**  
Quando si utilizzano le operazioni API del piano di controllo (control-plane), il tipo di dati `JobExecution` non contiene un campo `JobDocument`. Per ottenere queste informazioni, puoi utilizzare l'operazione API [https://docs.aws.amazon.com/iot/latest/apireference/API_GetJobDocument.html](https://docs.aws.amazon.com/iot/latest/apireference/API_GetJobDocument.html) o il comando della CLI [https://docs.aws.amazon.com/cli/latest/reference/get-job-document.html](https://docs.aws.amazon.com/cli/latest/reference/get-job-document.html).

```
{
    "approximateSecondsBeforeTimedOut": 50,
    "executionNumber": 1234567890,
    "forceCanceled": true|false,
    "jobId": "string",
    "lastUpdatedAt": timestamp, 
    "queuedAt": timestamp,
    "startedAt": timestamp,
    "status": "QUEUED|IN_PROGRESS|FAILED|SUCCEEDED|CANCELED|TIMED_OUT|REJECTED|REMOVED",
    "forceCanceled": boolean,
    "statusDetails": {
        "detailsMap": { 
            "string": "string" ...
        },
        "status": "string"
    }, 
    "thingArn": "string", 
    "versionNumber": 123
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecution.html) o [https://docs.aws.amazon.com/cli/latest/reference/iot/job-execution.html](https://docs.aws.amazon.com/cli/latest/reference/iot/job-execution.html).

### JobExecutionSummary
<a name="jobs-job-execution-summary"></a>

L'oggetto `JobExecutionSummary` contiene le informazioni di riepilogo sull'esecuzione del processo. L'esempio seguente mostra la sintassi:

```
{
    "executionNumber": 1234567890,
    "queuedAt": timestamp,
    "lastUpdatedAt": timestamp,
    "startedAt": timestamp,
    "status": "QUEUED|IN_PROGRESS|FAILED|SUCCEEDED|CANCELED|TIMED_OUT|REJECTED|REMOVED"
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummary.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummary.html) o [https://docs.aws.amazon.com/cli/latest/reference/iot/job-execution-summary.html](https://docs.aws.amazon.com/cli/latest/reference/iot/job-execution-summary.html).

### JobExecutionSummaryForJob
<a name="jobs-job-execution-summary-for-job"></a>

L'oggetto `JobExecutionSummaryForJob` contiene un riepilogo delle informazioni sulle esecuzioni di un determinato processo. L'esempio seguente mostra la sintassi:

```
{
    "executionSummaries": [
        {
            "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyThing", 
            "jobExecutionSummary": {
                "status": "IN_PROGRESS", 
                "lastUpdatedAt": 1549395301.389, 
                "queuedAt": 1541526002.609, 
                "executionNumber": 1
            }
        }, 
        ...
    ]
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummaryForJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummaryForJob.html) o [https://docs.aws.amazon.com/cli/latest/reference/iot/job-execution-summary-for-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/job-execution-summary-for-job.html).

### JobExecutionSummaryForThing
<a name="jobs-job-execution-summary-for-thing"></a>

L'`JobExecutionSummaryForThing`oggetto contiene un riepilogo delle informazioni sull'esecuzione di un lavoro su un oggetto specifico. FThe l'esempio seguente mostra la sintassi:

```
{
    "executionSummaries": [
        {
            "jobExecutionSummary": {
                "status": "IN_PROGRESS", 
                "lastUpdatedAt": 1549395301.389, 
                "queuedAt": 1541526002.609, 
                "executionNumber": 1
            }, 
            "jobId": "MyThingJob"
        },
        ...
    ]
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummaryForThing.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummaryForThing.html) o [https://docs.aws.amazon.com/cli/latest/reference/iot/job-execution-summary-for-thing.html](https://docs.aws.amazon.com/cli/latest/reference/iot/job-execution-summary-for-thing.html).

## Operazioni API di gestione e controllo dei processi
<a name="jobs-http-api"></a>

Utilizza le seguenti operazioni API o comandi CLI:

### AssociateTargetsWithJob
<a name="jobs-AssociateTargetsWithJob"></a>

Associa un gruppo a un processo continuo. Devono essere soddisfatti i criteri seguenti:
+ Il processo deve essere stato creato con il campo `targetSelection` impostato su `CONTINUOUS`.
+ Lo stato del processo deve essere `IN_PROGRESS`.
+ Il numero totale di target associati a un processo non deve essere superiore a 100.

------
#### [ HTTPS request ]

```
POST /jobs/jobId/targets
 
{ 
"targets": [ "string" ],
"comment": "string"
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/iot/latest/apireference/API_AssociateTargetsWithJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_AssociateTargetsWithJob.html). 

------
#### [ CLI syntax ]

```
aws iot  associate-targets-with-job \
--targets <value> \
--job-id <value> \
[--comment <value>]  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 Formato di `cli-input-json`:

```
{
"targets": [
"string"
],
"jobId": "string",
"comment": "string"
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/cli/latest/reference/iot/associate-targets-with-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/associate-targets-with-job.html).

------

### CancelJob
<a name="jobs-CancelJob"></a>

Annulla un processo.

------
#### [ HTTPS request ]

```
PUT /jobs/jobId/cancel
 
{ 
"force": boolean,
"comment": "string",
"reasonCode": "string"
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/iot/latest/apireference/API_CancelJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CancelJob.html). 

------
#### [ CLI syntax ]

```
aws iot cancel-job \
    --job-id <value> \
    [--force <value>]  \
    [--comment <value>]  \
    [--reasonCode <value>]  \
    [--cli-input-json <value>] \
    [--generate-cli-skeleton]
```

 Formato di `cli-input-json`:

```
{
    "jobId": "string",
    "force": boolean,
    "comment": "string"
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/cli/latest/reference/iot/cancel-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/cancel-job.html). 

------

### CancelJobExecution
<a name="jobs-CancelJobExecution"></a>

Annulla l'esecuzione di un processo su un dispositivo.

------
#### [ HTTPS request ]

```
PUT /things/thingName/jobs/jobId/cancel
 
{ 
"force": boolean,
"expectedVersion": "string",
"statusDetails": {
    "string": "string"
    ...
}
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/iot/latest/apireference/API_CancelJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CancelJobExecution.html).

------
#### [ CLI syntax ]

```
aws iot cancel-job-execution \
--job-id <value> \
--thing-name <value> \
[--force | --no-force] \
[--expected-version <value>] \
[--status-details <value>]  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 Formato di `cli-input-json`:

```
{
"jobId": "string",
"thingName": "string",
"force": boolean,
"expectedVersion": long,
"statusDetails": {
"string": "string"
}
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/cli/latest/reference/iot/cancel-job-execution.html](https://docs.aws.amazon.com/cli/latest/reference/iot/cancel-job-execution.html).

------

### CreateJob
<a name="jobs-CreateJob"></a>

Crea un processo. È possibile fornire il documento del processo come collegamento a un file in un bucket Amazon S3 (parametro `documentSource`) oppure nel corpo della richiesta (parametro `document`).

Un processo può essere reso *continuo* impostando il parametro opzionale `targetSelection` su `CONTINUOUS` (quello di default è `SNAPSHOT`). È possibile utilizzare un processo continuo per eseguire l'onboarding o l'aggiornamento dei dispositivi quando vengono aggiunti a un gruppo, in modo che  continui a essere eseguito e venga lanciato sui nuovi dispositivi aggiunti. Ciò può verificarsi anche dopo che gli oggetti presenti nel gruppo al momento della creazione del processo hanno completato il processo.

Un lavoro può avere un valore opzionale [TimeoutConfig](https://docs.aws.amazon.com//iot/latest/apireference/API_TimeoutConfig.html), che imposta il valore del timer in corso. Il timer in corso non può essere aggiornato e viene applicato a tutte le esecuzioni del processo.

Negli argomenti per l'API `CreateJob` vengono eseguite le convalide seguenti:
+ L'`targets`argomento deve essere un elenco di oggetti o gruppi ARNs di oggetti validi. Tutte le cose e i gruppi di cose devono essere nel tuo Account AWS.
+ L'argomento `documentSource` deve essere un URL Amazon S3 valido per un documento del processo. Amazon S3 ha URLs la forma:. `https://s3.amazonaws.com/bucketName/objectName`
+ Il documento archiviato nell'URL specificato dall'argomento `documentSource` deve essere un documento JSON con codifica UTF-8.
+ Le dimensioni di un documento del processo non possono essere superiori a 32 KB, a causa dei limiti relativi alle dimensioni di un messaggio MQTT (128 KB) e della crittografia.
+ `jobId`Devono essere unici nel tuo Account AWS.

------
#### [ HTTPS request ]

```
PUT /jobs/jobId
 
{
"targets": [ "string" ],
"document": "string",
"documentSource": "string",
"description": "string",
"jobTemplateArn": "string",
"presignedUrlConfigData": {
    "roleArn": "string", 
    "expiresInSec": "integer" 
},
"targetSelection": "CONTINUOUS|SNAPSHOT",
"jobExecutionsRolloutConfig": { 
    "exponentialRate": { 
       "baseRatePerMinute": integer,
       "incrementFactor": integer,
       "rateIncreaseCriteria": { 
          "numberOfNotifiedThings": integer, // Set one or the other
          "numberOfSucceededThings": integer // of these two values.
       },
       "maximumPerMinute": integer
  }
},
"abortConfig": { 
   "criteriaList": [ 
      { 
         "action": "string",
         "failureType": "string",
         "minNumberOfExecutedThings": integer,
         "thresholdPercentage": integer
      }
   ]
},
"SchedulingConfig": { 
    "startTime": string
    "endTime": string
    "timeZone": string


    "endTimeBehavior": string

   }
"timeoutConfig": { 
  "inProgressTimeoutInMinutes": long
}
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html). 

------
#### [ CLI syntax ]

```
aws iot create-job \
    --job-id <value> \
    --targets <value> \
    [--document-source <value>] \
    [--document <value>] \
    [--description <value>] \
    [--job-template-arn <value>] \
    [--presigned-url-config <value>] \
    [--target-selection <value>] \
    [--job-executions-rollout-config <value>] \
    [--abort-config <value>] \
    [--timeout-config <value>] \
    [--document-parameters <value>]  \
    [--cli-input-json <value>] \
    [--generate-cli-skeleton]
```

 Formato di `cli-input-json`:

```
{
    "jobId": "string",
    "targets": [ "string" ],
    "documentSource": "string",
    "document": "string",
    "description": "string",
    "jobTemplateArn": "string",
    "presignedUrlConfig": {
        "roleArn": "string",
        "expiresInSec": long
     },
    "targetSelection": "string",
    "jobExecutionsRolloutConfig": { 
          "exponentialRate": { 
              "baseRatePerMinute": integer,
              "incrementFactor": integer,
              "rateIncreaseCriteria": { 
                 "numberOfNotifiedThings": integer, // Set one or the other
                 "numberOfSucceededThings": integer // of these two values.
              },
      "maximumPerMinute": integer
      }
    }, 
    "abortConfig": { 
    "criteriaList": [ 
        { 
           "action": "string",
           "failureType": "string",
           "minNumberOfExecutedThings": integer,
           "thresholdPercentage": integer
         }
      ]
    },
    "timeoutConfig": { 
          "inProgressTimeoutInMinutes": long
    },
    "documentParameters": {
    "string": "string"
    }
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/cli/latest/reference/iot/create-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/create-job.html). 

------

### DeleteJob
<a name="jobs-DeleteJob"></a>

Elimina un processo e le relative esecuzioni.

L'eliminazione di un processo potrebbe richiedere del tempo, a seconda del numero di esecuzioni create per il processo e di altri fattori. Mentre il processo viene eliminato, lo stato del processo viene indicato come "DELETION\$1IN\$1PROGRESS". Il tentativo di eliminare o annullare un processo il cui stato è già "DELETION\$1IN\$1PROGRESS" restituirà un errore.

------
#### [ HTTPS request ]

```
DELETE /jobs/jobId?force=force 
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/iot/latest/apireference/API_DeleteJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DeleteJob.html).

------
#### [ CLI syntax ]

```
aws iot  delete-job \
--job-id <value> \
[--force | --no-force]  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 Formato di `cli-input-json`:

```
{
"jobId": "string",
"force": boolean
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/cli/latest/reference/iot/delete-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/delete-job.html).

------

### DeleteJobExecution
<a name="jobs-DeleteJobExecution"></a>

Elimina l'esecuzione di un processo.

------
#### [ HTTPS request ]

```
DELETE /things/thingName/jobs/jobId/executionNumber/executionNumber?force=force
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/iot/latest/apireference/API_DeleteJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DeleteJobExecution.html).

------
#### [ CLI syntax ]

```
aws iot  delete-job-execution \
--job-id <value> \
--thing-name <value> \
--execution-number <value> \
[--force | --no-force]  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 Formato di `cli-input-json`:

```
{
"jobId": "string",
"thingName": "string",
"executionNumber": long,
"force": boolean
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/cli/latest/reference/iot/delete-job-execution.html](https://docs.aws.amazon.com/cli/latest/reference/iot/delete-job-execution.html).

------

### DescribeJob
<a name="jobs-DescribeJob"></a>

Ottiene i dettagli di un'esecuzione del processo.

------
#### [ HTTPS request ]

```
GET /jobs/jobId
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJob.html).

------
#### [ CLI syntax ]

```
aws iot describe-job \
--job-id <value>  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 Formato di `cli-input-json`:

```
{
"jobId": "string"
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/cli/latest/reference/iot/describe-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/describe-job.html).

------

### DescribeJobExecution
<a name="jobs-DescribeJobExecution"></a>

Ottiene i dettagli di un'esecuzione del processo. Lo stato dell'esecuzione del processo deve essere `SUCCEEDED` o `FAILED`.

------
#### [ HTTPS request ]

```
GET /things/thingName/jobs/jobId?executionNumber=executionNumber
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJobExecution.html).

------
#### [ CLI syntax ]

```
aws iot  describe-job-execution \
--job-id <value> \
--thing-name <value> \
[--execution-number <value>]  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 Formato di `cli-input-json`:

```
{
"jobId": "string",
"thingName": "string",
"executionNumber": long
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/cli/latest/reference/iot/describe-job-execution.html](https://docs.aws.amazon.com/cli/latest/reference/iot/describe-job-execution.html).

------

### GetJobDocument
<a name="jobs-GetJobDocument"></a>

Ottiene il documento per un processo.

**Nota**  
I segnaposto non URLs vengono sostituiti con Amazon S3 URLs prefirmato nel documento restituito. I prefirmati URLs vengono generati solo quando il servizio AWS IoT Jobs riceve una richiesta tramite MQTT.

------
#### [ HTTPS request ]

```
GET /jobs/jobId/job-document
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/iot/latest/apireference/API_GetJobDocument.html](https://docs.aws.amazon.com/iot/latest/apireference/API_GetJobDocument.html).

------
#### [ CLI syntax ]

```
aws iot get-job-document \
--job-id <value>  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 Formato di `cli-input-json`:

```
{
"jobId": "string"
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/cli/latest/reference/iot/get-job-document.html](https://docs.aws.amazon.com/cli/latest/reference/iot/get-job-document.html).

------

### ListJobExecutionsForJob
<a name="jobs-listJobExecutionsForJob"></a>

Ottiene un elenco delle esecuzioni per un processo.

------
#### [ HTTPS request ]

```
GET /jobs/jobId/things?status=status&maxResults=maxResults&nextToken=nextToken
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/iot/latest/apireference/API_ListJobExecutionsForJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_ListJobExecutionsForJob.html).

------
#### [ CLI syntax ]

```
aws iot  list-job-executions-for-job \
--job-id <value> \
[--status <value>] \
[--max-results <value>] \
[--next-token <value>]  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 Formato di `cli-input-json`:

```
{
"jobId": "string",
"status": "string",
"maxResults": "integer",
"nextToken": "string"
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/cli/latest/reference/iot/list-job-executions-for-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/list-job-executions-for-job.html).

------

### ListJobExecutionsForThing
<a name="jobs-ListJobExecutionsForThing"></a>

Ottiene un elenco delle esecuzioni di un processo per un oggetto.

------
#### [ HTTPS request ]

```
GET /things/thingName/jobs?status=status&maxResults=maxResults&nextToken=nextToken
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/iot/latest/apireference/API_ListJobExecutionsForThing.html](https://docs.aws.amazon.com/iot/latest/apireference/API_ListJobExecutionsForThing.html).

------
#### [ CLI syntax ]

```
aws iot list-job-executions-for-thing \
--thing-name <value> \
[--status <value>] \
[--max-results <value>] \
[--next-token <value>]  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 Formato di `cli-input-json`:

```
{
"thingName": "string",
"status": "string",
"maxResults": "integer",
"nextToken": "string"
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/cli/latest/reference/iot/list-job-executions-for-thing.html](https://docs.aws.amazon.com/cli/latest/reference/iot/list-job-executions-for-thing.html).

------

### ListJobs
<a name="jobs-listJobs"></a>

Ottiene un elenco di lavori nel tuo. Account AWS

------
#### [ HTTPS request ]

```
GET /jobs?status=status&targetSelection=targetSelection&thingGroupName=thingGroupName&thingGroupId=thingGroupId&maxResults=maxResults&nextToken=nextToken
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/iot/latest/apireference/API_ListJobs.html](https://docs.aws.amazon.com/iot/latest/apireference/API_ListJobs.html).

------
#### [ CLI syntax ]

```
aws iot list-jobs \
[--status <value>] \
[--target-selection <value>] \
[--max-results <value>] \
[--next-token <value>] \
[--thing-group-name <value>] \
[--thing-group-id <value>]  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 Formato di `cli-input-json`:

```
{
"status": "string",
"targetSelection": "string",
"maxResults": "integer",
"nextToken": "string",
"thingGroupName": "string",
"thingGroupId": "string"
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/cli/latest/reference/iot/list-jobs.html](https://docs.aws.amazon.com/cli/latest/reference/iot/list-jobs.html).

------

### UpdateJob
<a name="jobs-UpdateJob"></a>

Aggiorna i campi supportati del processo specificato. I valori aggiornati per `timeoutConfig` diventano effettivi solo per i nuovi avvii in corso. Attualmente, gli avvii in corso continuano a essere lanciati con la  configurazione del timeout precedente.

------
#### [ HTTPS request ]

```
PATCH /jobs/jobId
{
"description": "string",
"presignedUrlConfig": { 
  "expiresInSec": number,
  "roleArn": "string"
},
"jobExecutionsRolloutConfig": { 
  "exponentialRate": { 
     "baseRatePerMinute": number,
     "incrementFactor": number,
     "rateIncreaseCriteria": { 
        "numberOfNotifiedThings": number,
        "numberOfSucceededThings": number
     }, 
  "maximumPerMinute": number
  },
"abortConfig": { 
  "criteriaList": [ 
     { 
        "action": "string",
        "failureType": "string",
        "minNumberOfExecutedThings": number,
        "thresholdPercentage": number
     }
  ]
},
"timeoutConfig": { 
  "inProgressTimeoutInMinutes": number
}
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateJob.html).

------
#### [ CLI syntax ]

```
aws iot  update-job \
--job-id <value> \
[--description <value>] \
[--presigned-url-config <value>] \
[--job-executions-rollout-config <value>] \
[--abort-config <value>] \
[--timeout-config <value>] \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 Formato di `cli-input-json`:

```
{
"description": "string",
"presignedUrlConfig": { 
  "expiresInSec": number,
  "roleArn": "string"
},
"jobExecutionsRolloutConfig": { 
  "exponentialRate": { 
     "baseRatePerMinute": number,
     "incrementFactor": number,
     "rateIncreaseCriteria": { 
        "numberOfNotifiedThings": number,
        "numberOfSucceededThings": number
     }
  },
  "maximumPerMinute": number
},
"abortConfig": { 
  "criteriaList": [ 
     { 
        "action": "string",
        "failureType": "string",
        "minNumberOfExecutedThings": number,
        "thresholdPercentage": number
     }
  ]
},
"timeoutConfig": { 
  "inProgressTimeoutInMinutes": number
}
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/cli/latest/reference/iot/update-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/update-job.html).

------

# Tipi di dati e operazioni API MQTT e HTTPS per i dispositivi per il servizio Jobs
<a name="jobs-mqtt-https-api"></a>

I comandi seguenti sono disponibili tramite i protocolli MQTT e HTTPS. Utilizza queste operazioni API sul piano dati per i dispositivi che eseguono i processi.

## Tipi di dati MQTT e HTTPS del dispositivo di processi
<a name="jobs-data-plane-data-types"></a>

I seguenti tipi di dati vengono utilizzati per comunicare con il servizio AWS IoT Jobs tramite i protocolli MQTT e HTTPS.

### JobExecution
<a name="jobs-mqtt-job-execution-data"></a>

L'oggetto `JobExecution` rappresenta l'esecuzione di un processo in un dispositivo. L'esempio seguente mostra la sintassi:

**Nota**  
Quando si utilizzano le operazioni API MQTT e HTTP del piano dati, il tipo di dati `JobExecution` contiene un campo `JobDocument`. I dispositivi possono utilizzare queste informazioni per recuperare il documento di lavoro dall'esecuzione di un processo.

```
{
    "jobId" : "string",
    "thingName" : "string",
    "jobDocument" : "string",
    "status": "QUEUED|IN_PROGRESS|FAILED|SUCCEEDED|CANCELED|TIMED_OUT|REJECTED|REMOVED",
    "statusDetails": {
        "string": "string"
    },
    "queuedAt" : "timestamp",
    "startedAt" : "timestamp",
    "lastUpdatedAt" : "timestamp",
    "versionNumber" : "number",
    "executionNumber": long
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecution.html) o [https://docs.aws.amazon.com/cli/latest/reference/iot-data/job-execution.html](https://docs.aws.amazon.com/cli/latest/reference/iot-data/job-execution.html).

### JobExecutionState
<a name="jobs-mqtt-job-execution-state"></a>

`JobExecutionState` contiene informazioni sullo stato di esecuzione di un processo. L'esempio seguente mostra la sintassi:

```
{
    "status": "QUEUED|IN_PROGRESS|FAILED|SUCCEEDED|CANCELED|TIMED_OUT|REJECTED|REMOVED",
    "statusDetails": {
        "string": "string"
        ...
    }
    "versionNumber": "number"
}
```

Per ulteriori informazioni, consulta [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) o [https://docs.aws.amazon.com/cli/latest/reference/iot-data/job-execution-state.html](https://docs.aws.amazon.com/cli/latest/reference/iot-data/job-execution-state.html).

### JobExecutionSummary
<a name="jobs-mqtt-job-execution-summary"></a>

Contiene un sottoinsieme delle informazioni sull'esecuzione di un processo. L'esempio seguente mostra la sintassi:

```
{
    "jobId": "string",
    "queuedAt": timestamp,
    "startedAt": timestamp,
    "lastUpdatedAt": timestamp,
    "versionNumber": "number",
    "executionNumber": long 
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecutionSummary.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecutionSummary.html) o [https://docs.aws.amazon.com/cli/latest/reference/iot-data/job-execution-summary.html](https://docs.aws.amazon.com/cli/latest/reference/iot-data/job-execution-summary.html).

**Topics**
+ [Tipi di dati MQTT e HTTPS del dispositivo di processi](#jobs-data-plane-data-types)
+ [Operazioni API MQTT del dispositivo dei processi](jobs-mqtt-api.md)
+ [API HTTP del dispositivo di processi](jobs-http-device-api.md)

# Operazioni API MQTT del dispositivo dei processi
<a name="jobs-mqtt-api"></a><a name="jobs-mqtt-note"></a>

Puoi inviare i comandi del dispositivo di processi pubblicando i messaggi MQTT negli [Argomenti riservati utilizzati per i comandi Jobs](reserved-topics.md#reserved-topics-job). 

Il client lato dispositivo deve disporre della sottoscrizione agli argomenti del messaggio di risposta di questi comandi. Se si utilizza il AWS IoT Device Client, il dispositivo si iscriverà automaticamente agli argomenti di risposta. Il che significa che il broker di messaggi pubblica gli argomenti dei messaggi di risposta nel client che ha pubblicato il messaggio di comando, a prescindere che il client abbia effettuato la sottoscrizione agli argomenti del messaggio di risposta. Questi messaggi di risposta non passano attraverso il broker di messaggi e non possono essere sottoscritti da altri client o regole.

Durante la sottoscrizione agli argomenti di processo ed evento `jobExecution` per la tua soluzione di monitoraggio del parco istanze, per prima cosa abilita gli [eventi di processo e di esecuzione di processi](iot-events.md) per ricevere eventi sul lato cloud. Messaggi di avanzamento del processo che vengono elaborati tramite il broker di messaggi e possono essere utilizzati dalle regole di AWS IoT sono pubblicate come [Eventi del servizio Jobs](events-jobs.md). Poiché il broker di messaggi pubblica i messaggi di risposta, anche senza una sottoscrizione esplicita, il client deve essere configurato per ricevere e identificare i messaggi ricevuti. Il client deve inoltre confermare che l'argomento del messaggio *thingName* in arrivo si applichi al nome dell'oggetto del client prima che il client agisca sul messaggio.

**Nota**  
I messaggi AWS IoT inviati in risposta ai messaggi di comando dell'API MQTT Jobs vengono addebitati sul tuo account, indipendentemente dal fatto che tu li abbia sottoscritti in modo esplicito o meno.

Di seguito vengono illustrate le operazioni API MQTT e la relativa sintassi di richiesta e risposta. Tutte le operazioni API MQTT hanno i seguenti parametri:

clientToken  
Un token client opzionale utilizzato per mettere in relazione richieste e risposte. Inserisci un valore arbitrario, che viene riportato nella risposta.

`timestamp`  
Periodo di tempo, in secondi, dall'epoca all'invio del messaggio.

## GetPendingJobExecutions
<a name="mqtt-getpendingjobexecutions"></a>

Ottiene l'elenco di tutti i processi che non si trovano in uno stato terminale, per un oggetto specifico.

Per richiamare quest'API, pubblica un messaggio in `$aws/things/thingName/jobs/get`.

Payload della richiesta:

```
{ "clientToken": "string" }
```

Il broker dei messaggi pubblicherà `$aws/things/thingName/jobs/get/accepted` e `$aws/things/thingName/jobs/get/rejected` anche senza un abbonamento specifico. Tuttavia, affinché il client riceva i messaggi, deve essere in ascolto. Per ulteriori informazioni, consulta [la nota sui messaggi dell'API Jobs](#jobs-mqtt-note).

Payload della risposta:

```
{
"inProgressJobs" : [ JobExecutionSummary ... ], 
"queuedJobs" : [ JobExecutionSummary ... ],
"timestamp" : 1489096425069,
"clientToken" : "client-001"
}
```

Dove `inProgressJobs` e `queuedJobs` restituiscono un elenco di oggetti [JobExecutionSummary](jobs-mqtt-https-api.md#jobs-mqtt-job-execution-summary) che hanno lo stato `IN_PROGRESS` o `QUEUED`.

## StartNextPendingJobExecution
<a name="mqtt-startnextpendingjobexecution"></a>

Recupera e avvia la successiva esecuzione del processo in sospeso per un oggetto (stato `IN_PROGRESS` o `QUEUED`). 
+ Le esecuzioni di un processo con stato `IN_PROGRESS` vengono restituite per prime.
+ Le esecuzioni di un processo vengono restituite in base all'ordine di coda. Quando un elemento viene aggiunto o rimosso dal gruppo target per il tuo processo, conferma l'ordine di implementazione di eventuali nuove esecuzioni di processi rispetto alle esecuzioni di processi esistenti.
+ Se lo stato della successiva esecuzione del processo in sospeso è `QUEUED`, il relativo stato viene modificato in `IN_PROGRESS` e i dettagli dello stato dell'esecuzione del processo vengono impostati come specificato.
+ Se la successiva esecuzione del processo in sospeso è già nello stato `IN_PROGRESS`, i dettagli dello stato non vengono modificati.
+ Se non sono presenti esecuzioni in sospeso, la risposta non include il campo `execution`.
+ Facoltativamente, puoi creare un timer della fase impostando un valore per la proprietà `stepTimeoutInMinutes`. Se non aggiorni il valore di questa proprietà eseguendo `UpdateJobExecution`, il timeout dell'esecuzione del processo si verifica alla scadenza del timer della fase.

Per richiamare quest'API, pubblica un messaggio in `$aws/things/thingName/jobs/start-next`.

Payload della richiesta:

```
{ 
"statusDetails": {
    "string": "job-execution-state"
    ...
},
"stepTimeoutInMinutes": long,
"clientToken": "string"
}
```

`statusDetails`  
Raccolta di coppie nome-valore che descrivono lo stato dell'esecuzione del processo. Se non è specificato, `statusDetails` resta invariato.

`stepTimeOutInMinutes`  
Specifica l'intervallo di tempo a disposizione di ciascun dispositivo per terminare l'esecuzione di questo processo. Se lo stato di esecuzione del processo non è impostato su uno stato terminale prima del timeout o prima della reimpostazione del timer (chiamando `UpdateJobExecution`, impostando lo stato su `IN_PROGRESS` e specificando un nuovo valore di timeout nel campo `stepTimeoutInMinutes`), lo stato di esecuzione del processo viene impostato su `TIMED_OUT`. L'impostazione di questo timeout non ha alcun effetto sul timeout dell'esecuzione del processo, che potresti avere specificato al momento della creazione del processo (`CreateJob` utilizzando il campo `timeoutConfig`).   
I valori validi di questo parametro variano da 1 a 10080 (da 1 minuto a 7 giorni). Anche il valore -1 è valido e annullerà lo step timer corrente (creato da un uso precedente di). UpdateJobExecutionRequest

Il broker dei messaggi pubblicherà `$aws/things/thingName/jobs/start-next/accepted` e `$aws/things/thingName/jobs/start-next/rejected` anche senza un abbonamento specifico. Tuttavia, affinché il client riceva i messaggi, deve essere in ascolto. Per ulteriori informazioni, consulta [la nota sui messaggi dell'API Jobs](#jobs-mqtt-note).

Payload della risposta:

```
{
"execution" : JobExecutionData,
"timestamp" : timestamp,
"clientToken" : "string"
}
```

Dove `execution` è un oggetto [JobExecution](jobs-mqtt-https-api.md#jobs-mqtt-job-execution-data). Esempio:

```
{
"execution" : {
    "jobId" : "022",
    "thingName" : "MyThing",
    "jobDocument" : "< contents of job document >",
    "status" : "IN_PROGRESS",
    "queuedAt" : 1489096123309,
    "lastUpdatedAt" : 1489096123309,
    "versionNumber" : 1,
    "executionNumber" : 1234567890
},
"clientToken" : "client-1",
"timestamp" : 1489088524284,
}
```

## DescribeJobExecution
<a name="mqtt-describejobexecution"></a>

Ottiene informazioni dettagliate sull'esecuzione di un processo.

Puoi impostare `jobId` su `$next` per restituire la successiva esecuzione del processo in sospeso per un oggetto (stato `IN_PROGRESS` o `QUEUED`).

Per richiamare quest'API, pubblica un messaggio in `$aws/things/thingName/jobs/jobId/get`. 

Payload della richiesta:

```
{ 
"jobId" : "022",
"thingName" : "MyThing",
"executionNumber": long,
"includeJobDocument": boolean,
"clientToken": "string" 
}
```

`thingName`  
Nome dell'oggetto associato al dispositivo.

`jobId`  
Identificatore univoco assegnato al processo al momento della creazione.   
In alternativa, utilizza `$next` per restituire la successiva esecuzione del processo in sospeso per un oggetto (stato `IN_PROGRESS` o `QUEUED`). In questo caso, le esecuzioni del processo con stato `IN_PROGRESS` vengono restituite per prime. Le esecuzioni di un processo vengono restituite in base all'ordine di creazione.

`executionNumber`  
(Facoltativo) Numero che identifica l'esecuzione di un processo in un dispositivo. Se non è specificato, viene restituita l'ultima esecuzione del processo.

`includeJobDocument`  
(Facoltativo) A meno che non sia impostato su `false`, la risposta contiene il documento del processo. Il valore predefinito è `true`.

Il broker dei messaggi pubblicherà `$aws/things/thingName/jobs/jobId/get/accepted` e `$aws/things/thingName/jobs/jobId/get/rejected` anche senza un abbonamento specifico. Tuttavia, affinché il client riceva i messaggi, deve essere in ascolto. Per ulteriori informazioni, consulta [la nota sui messaggi dell'API Jobs](#jobs-mqtt-note).

Payload della risposta:

```
{
"execution" : JobExecutionData,
"timestamp": "timestamp",
"clientToken": "string"
}
```

Dove `execution` è un oggetto [JobExecution](jobs-mqtt-https-api.md#jobs-mqtt-job-execution-data).

## UpdateJobExecution
<a name="mqtt-updatejobexecution"></a>

Aggiorna lo stato dell'esecuzione di un processo. Se lo desideri, puoi creare un timer della fase impostando un valore per la proprietà `stepTimeoutInMinutes`. Se non aggiorni il valore di questa proprietà eseguendo nuovamente `UpdateJobExecution`, il timeout dell'esecuzione del processo si verifica alla scadenza del timer della fase.

Per richiamare quest'API, pubblica un messaggio in `$aws/things/thingName/jobs/jobId/update`. 

Payload della richiesta:

```
{
"status": "job-execution-state",
"statusDetails": { 
    "string": "string"
    ...
},
"expectedVersion": "number",
"executionNumber": long,
"includeJobExecutionState": boolean,
"includeJobDocument": boolean,
"stepTimeoutInMinutes": long,
"clientToken": "string"
}
```

`status`  
Il nuovo stato per l'esecuzione del processo (`IN_PROGRESS`, `FAILED`, `SUCCEEDED` o `REJECTED`). Questo valore deve essere specificato per ogni aggiornamento.

`statusDetails`  
Raccolta di coppie nome-valore che descrivono lo stato dell'esecuzione del processo. Se non è specificato, `statusDetails` resta invariato.

`expectedVersion`  
Versione corrente prevista dell'esecuzione del processo. Ogni volta che aggiorni l'esecuzione del processo, la versione viene incrementata. Se la versione dell'esecuzione del lavoro memorizzata nel servizio AWS IoT Jobs non corrisponde, l'aggiornamento viene rifiutato con un `VersionMismatch` errore. Viene restituito anche un file [ErrorResponse](jobs-api.md#jobs-mqtt-error-response) contenente i dati sullo stato di esecuzione del processo attuale. Questo comportamento rende inutile una richiesta `DescribeJobExecution` separata per ottenere i dati sullo stato dell'esecuzione del processo.

`executionNumber`  
(Facoltativo) Numero che identifica l'esecuzione di un processo in un dispositivo. Se non è specificato, viene usata l'ultima esecuzione del processo.

`includeJobExecutionState`  
(Facoltativo) Quando è incluso e impostato su `true`, la risposta contiene il campo `JobExecutionState`. Il valore predefinito è `false`.

`includeJobDocument`  
(Facoltativo) Quando è incluso e impostato su `true`, la risposta contiene `JobDocument`. Il valore predefinito è `false`.

`stepTimeoutInMinutes`  
Specifica l'intervallo di tempo a disposizione di ciascun dispositivo per terminare l'esecuzione di questo processo. Lo stato di esecuzione del processo è impostato su `TIMED_OUT`, a meno che non venga impostato su uno stato terminale prima del timeout o prima che il timer venga reimpostato. L'impostazione o la reimpostazione di questo timeout non ha alcun effetto su quello dell'esecuzione del processo che potresti avere specificato al momento della creazione del processo. 

Il broker dei messaggi pubblicherà `$aws/things/thingName/jobs/jobId/update/accepted` e `$aws/things/thingName/jobs/jobId/update/rejected` anche senza un abbonamento specifico. Tuttavia, affinché il client riceva i messaggi, deve essere in ascolto. Per ulteriori informazioni, consulta [la nota sui messaggi dell'API Jobs](#jobs-mqtt-note).

Payload della risposta:

```
{
"executionState": JobExecutionState,
"jobDocument": "string",
"timestamp": timestamp,
"clientToken": "string"
}
```

`executionState`  
Oggetto [JobExecutionState](jobs-mqtt-https-api.md#jobs-mqtt-job-execution-state).

`jobDocument`  
Un oggetto [documento del processo](key-concepts-jobs.md).  
Nelle risposte MQTT, il `jobDocument` campo è un oggetto JSON. Nelle risposte HTTP, è una rappresentazione in formato stringa dell'oggetto JSON.

`timestamp`  
Periodo di tempo, in secondi, dall'epoca all'invio del messaggio.

`clientToken`  
Token client usato per mettere in relazione richieste e risposte.

Quando si utilizza il protocollo MQTT, è anche possibile eseguire i seguenti aggiornamenti:

## JobExecutionsChanged
<a name="mqtt-jobexecutionschanged"></a>

Inviato ogni volta che un'esecuzione di un processo viene aggiunta o rimossa dall'elenco di esecuzioni del processo in sospeso per un oggetto.

Utilizza l'argomento :

`$aws/things/thingName/jobs/notify`

Payload del messaggio:

```
{
"jobs" : {
    "JobExecutionState": [ [https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummary.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummary.html) ... ]
         },
    "timestamp": timestamp
}
```

## NextJobExecutionChanged
<a name="mqtt-nextjobexecutionchanged"></a>

Inviato ogni volta che c'è una modifica a cui segue l'esecuzione del processo nell'elenco delle esecuzioni di processi in sospeso per qualcosa, come definito per [https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJobExecution.html) `jobId` con `$next`. Questo messaggio non viene inviato quando cambiano i dettagli della successiva esecuzione del processo, ma solo quando cambia il processo successivo che verrebbe restituito da `DescribeJobExecution` con `jobId` `$next`. Considera le esecuzioni di processo J1 e J2 con stato `QUEUED`. J1 è l'esecuzione successiva nell'elenco di esecuzioni del processo in sospeso. Se lo stato di J2 viene modificato in `IN_PROGRESS`, mentre lo stato di J1 rimane invariato, questa notifica viene inviata e contiene i dettagli di J2.

Utilizza l'argomento :

`$aws/things/thingName/jobs/notify-next`

Payload del messaggio:

```
{
"execution" : [https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecution.html),
"timestamp": timestamp,
}
```

# API HTTP del dispositivo di processi
<a name="jobs-http-device-api"></a>

I dispositivi possono comunicare con AWS IoT Jobs utilizzando la versione 4 della firma HTTP sulla porta 443. Questo è il metodo utilizzato da AWS SDKs and CLI. Per ulteriori informazioni su questi strumenti, vedere [AWS CLI Command Reference: iot-jobs-data](https://docs.aws.amazon.com/cli/latest/reference/iot-jobs-data/index.html) or [AWS SDKs and Tools](https://aws.amazon.com/tools/#sdk).

I seguenti comandi sono disponibili per i dispositivi che eseguono i processi. Per informazioni sull'utilizzo delle operazioni API con il protocollo MQTT, consulta [Operazioni API MQTT del dispositivo dei processi](jobs-mqtt-api.md).

## GetPendingJobExecutions
<a name="http-getpendingjobexecutions"></a>

Ottiene l'elenco di tutti i processi che non si trovano in uno stato terminale, per un oggetto specifico.

------
#### [ HTTPS request ]

```
GET /things/thingName/jobs
```

Risposta:

```
{
"inProgressJobs" : [ JobExecutionSummary ... ], 
"queuedJobs" : [ JobExecutionSummary ... ]
}
```

Per ulteriori informazioni, consulta [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). 

------
#### [ CLI syntax ]

```
aws iot-jobs-data get-pending-job-executions \
--thing-name <value>  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 Formato di `cli-input-json`:

```
{
"thingName": "string"
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/cli/latest/reference/iot-jobs-data/get-pending-job-executions.html](https://docs.aws.amazon.com/cli/latest/reference/iot-jobs-data/get-pending-job-executions.html).

------

## StartNextPendingJobExecution
<a name="http-startnextpendingjobexecution"></a>

Recupera e avvia la successiva esecuzione del processo in sospeso per un oggetto (con uno stato `IN_PROGRESS` o `QUEUED`). 
+ Le esecuzioni di un processo con stato `IN_PROGRESS` vengono restituite per prime.
+ Le esecuzioni di un processo vengono restituite in base all'ordine di creazione.
+ Se lo stato della successiva esecuzione del processo in sospeso è `QUEUED`, il relativo stato viene modificato in `IN_PROGRESS` e i dettagli dello stato dell'esecuzione del processo vengono impostati come specificato.
+ Se la successiva esecuzione del processo in sospeso ha già lo stato `IN_PROGRESS`, i dettagli dello stato non vengono modificati.
+ Se non sono presenti esecuzioni in sospeso, la risposta non include il campo `execution`.
+ Facoltativamente, puoi creare un timer della fase impostando un valore per la proprietà `stepTimeoutInMinutes`. Se non aggiorni il valore di questa proprietà eseguendo `UpdateJobExecution`, il timeout dell'esecuzione del processo si verifica alla scadenza del timer della fase.

------
#### [ HTTPS request ]

L'esempio seguente mostra la sintassi della richiesta:

```
PUT /things/thingName/jobs/$next
{
"statusDetails": { 
    "string": "string" 
    ... 
},
"stepTimeoutInMinutes": long
}
```

Per ulteriori informazioni, consulta [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).

------
#### [ CLI syntax ]

**Riepilogo:**

```
aws iot-jobs-data  start-next-pending-job-execution \
--thing-name <value> \
{--step-timeout-in-minutes <value>] \
[--status-details <value>]  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 Formato di `cli-input-json`:

```
{
"thingName": "string",
"statusDetails": {
"string": "string"
},
"stepTimeoutInMinutes": long
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/cli/latest/reference/iot-jobs-data/start-next-pending-job-execution.html](https://docs.aws.amazon.com/cli/latest/reference/iot-jobs-data/start-next-pending-job-execution.html).

------

## DescribeJobExecution
<a name="http-describejobexecution"></a>

Ottiene informazioni dettagliate sull'esecuzione di un processo.

Puoi impostare `jobId` su `$next` per restituire la successiva esecuzione del processo in sospeso per un oggetto. Lo stato dell'esecuzione del processo deve essere `QUEUED` o `IN_PROGRESS`.

------
#### [ HTTPS request ]

Richiesta:

```
GET /things/thingName/jobs/jobId?executionNumber=executionNumber&includeJobDocument=includeJobDocument
```

Risposta:

```
{
"execution" : JobExecution,
}
```

Per ulteriori informazioni, consulta [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).

------
#### [ CLI syntax ]

**Riepilogo:**

```
aws iot-jobs-data  describe-job-execution \
--job-id <value> \
--thing-name <value> \
[--include-job-document | --no-include-job-document] \
[--execution-number <value>]  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 Formato di `cli-input-json`:

```
{
"jobId": "string",
"thingName": "string",
"includeJobDocument": boolean,
"executionNumber": long
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/cli/latest/reference/iot-data/describe-job-execution.html](https://docs.aws.amazon.com/cli/latest/reference/iot-data/describe-job-execution.html).

------

## UpdateJobExecution
<a name="http-updatejobexecution"></a>

Aggiorna lo stato dell'esecuzione di un processo. Facoltativamente, puoi creare un timer della fase impostando un valore per la proprietà `stepTimeoutInMinutes`. Se non aggiorni il valore di questa proprietà eseguendo nuovamente `UpdateJobExecution`, il timeout dell'esecuzione del processo si verifica alla scadenza del timer della fase.

------
#### [ HTTPS request ]

Richiesta:

```
POST /things/thingName/jobs/jobId
{
"status": "job-execution-state",
"statusDetails": { 
    "string": "string"
    ...
},
"expectedVersion": "number",
"includeJobExecutionState": boolean,
"includeJobDocument": boolean,
"stepTimeoutInMinutes": long,
"executionNumber": long 
}
```

Per ulteriori informazioni, consulta [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).

------
#### [ CLI syntax ]

**Riepilogo:**

```
aws iot-jobs-data  update-job-execution \
--job-id <value> \
--thing-name <value> \
--status <value> \
[--status-details <value>] \
[--expected-version <value>] \
[--include-job-execution-state | --no-include-job-execution-state] \
[--include-job-document | --no-include-job-document] \
[--execution-number <value>]  \
[--cli-input-json <value>] \
[--step-timeout-in-minutes <value>] \
[--generate-cli-skeleton]
```

 Formato di `cli-input-json`:

```
{
"jobId": "string",
"thingName": "string",
"status": "string",
"statusDetails": {
"string": "string"
},
"stepTimeoutInMinutes": number,
"expectedVersion": long,
"includeJobExecutionState": boolean,
"includeJobDocument": boolean,
"executionNumber": long
}
```

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/cli/latest/reference/iot-data/update-job-execution.html](https://docs.aws.amazon.com/cli/latest/reference/iot-data/update-job-execution.html).

------