Tipi di dati e API di gestione e controllo dei processi - AWS IoT Core

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à.

Tipi di dati e API di gestione e controllo dei processi

Per la gestione e il controllo delle applicazioni su CLI e tramite il protocollo HTTPS sono disponibili i comandi seguenti.

Per determinare il parametro endpoint-url 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 z-amzn-http-ca.

Tipi di dati di gestione e controllo dei processi

I tipi di dati seguenti vengono usati dalle applicazioni di gestione e controllo per comunicare con i processi di AWS IoT.

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, consultare Job o job.

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, consultare JobSummary o job-summary.

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 GetJobDocument o il comando della CLI get-job-document.

{ "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, consultare JobExecution o job-execution.

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, consultare JobExecutionSummary o job-execution-summary.

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, consultare JobExecutionSummaryForJob o job-execution-summary-for-job.

L'oggetto JobExecutionSummaryForThing contiene un riepilogo delle informazioni sull'esecuzione di un processo in un oggetto specifico. L'esempio seguente mostra la sintassi:

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

Per ulteriori informazioni, consultare JobExecutionSummaryForThing o job-execution-summary-for-thing.

Operazioni API di gestione e controllo dei processi

Utilizza le seguenti operazioni API o comandi CLI:

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 AssociateTargetsWithJob.

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 associate-targets-with-job.

Annulla un processo.

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

Per ulteriori informazioni, consulta CancelJob.

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 cancel-job.

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 CancelJobExecution.

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 cancel-job-execution.

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 processo può avere un TimeoutConfig opzionale, 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'argomento targets deve essere un elenco di ARN di oggetti o gruppi di oggetti validi. Tutti gli oggetti e i gruppi di oggetti devono trovarsi nell’account Account AWS.

  • L'argomento documentSource deve essere un URL Amazon S3 valido per un documento del processo. Gli URL Amazon S3 usano il formato: 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 deve essere univoco nell’account 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 CreateJob.

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 create-job.

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_IN_PROGRESS". Il tentativo di eliminare o annullare un processo il cui stato è già "DELETION_IN_PROGRESS" restituirà un errore.

HTTPS request
DELETE /jobs/jobId?force=force

Per ulteriori informazioni, consulta DeleteJob.

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 delete-job.

Elimina l'esecuzione di un processo.

HTTPS request
DELETE /things/thingName/jobs/jobId/executionNumber/executionNumber?force=force

Per ulteriori informazioni, consulta DeleteJobExecution.

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 delete-job-execution.

Ottiene i dettagli di un'esecuzione del processo.

HTTPS request
GET /jobs/jobId

Per ulteriori informazioni, consulta DescribeJob.

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 describe-job.

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 DescribeJobExecution.

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 describe-job-execution.

Ottiene il documento per un processo.

Nota

Gli URL segnaposto non vengono sostituiti con URL Amazon S3 prefirmati nel documento restituito. Gli URL prefirmati 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 GetJobDocument.

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 get-job-document.

Ottiene un elenco delle esecuzioni per un processo.

HTTPS request
GET /jobs/jobId/things?status=status&maxResults=maxResults&nextToken=nextToken

Per ulteriori informazioni, consulta ListJobExecutionsForJob.

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 list-job-executions-for-job.

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 ListJobExecutionsForThing.

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 list-job-executions-for-thing.

Ottiene un elenco dei processi nel tuo Account AWS.

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

Per ulteriori informazioni, consulta ListJobs.

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 list-jobs.

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 UpdateJob.

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 update-job.