Gestione e controllo dei lavori API e tipi di dati - 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à.

Gestione e controllo dei lavori API e tipi di dati

I seguenti comandi sono disponibili per la gestione e il controllo dei Job nel CLI e tramite il HTTPS protocollo.

Per determinare il endpoint-url parametro per CLI i tuoi comandi, 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 Jobs non supporta ALPNx-amzn-http-ca.

Tipi di dati di gestione e controllo dei processi

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

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 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, consulta 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 API operazioni del piano di controllo, il tipo di JobExecution dati non contiene un JobDocument campo. Per ottenere queste informazioni, è possibile utilizzare l'GetJobDocumentAPIoperazione o il get-job-documentCLIcomando.

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

L'JobExecutionSummaryForThingoggetto contiene un riepilogo delle informazioni sull'esecuzione di un lavoro su un oggetto specifico. FThel'esempio seguente mostra la sintassi:

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

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

APIOperazioni di gestione e controllo del lavoro

Utilizza le seguenti API operazioni o CLI comandi:

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 lavoro può avere un valore opzionale TimeoutConfigche imposta il valore del timer in corso. Il timer in corso non può essere aggiornato e viene applicato a tutte le esecuzioni del processo.

Le seguenti convalide vengono eseguite sugli argomenti relativi a: CreateJob API

  • L'targetsargomento 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'documentSourceargomento deve essere un documento valido da Amazon S3 URL a Job. Amazon S3 ha URLs la forma:. https://s3.amazonaws.com/bucketName/objectName

  • Il documento memorizzato nel campo URL specificato dall'documentSourceargomento deve essere un documento con codifica UTF JSON -8.

  • La dimensione di un documento di lavoro è limitata a 32 KB a causa del limite della dimensione di un MQTT messaggio (128 KB) e della crittografia.

  • jobIdDeve essere unico 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 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. Durante l'eliminazione del lavoro, lo stato del lavoro viene visualizzato come "DELETION_IN_PROGRESS». Il tentativo di eliminare o annullare un lavoro il cui stato è già "DELETION_IN_PROGRESS" genera 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

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 di invio. 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 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 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.