Manajemen pekerjaan dan kontrol API dan tipe data - AWS IoT Core

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Manajemen pekerjaan dan kontrol API dan tipe data

Perintah berikut tersedia untuk manajemen dan kontrol Job di CLI dan melalui protokol HTTPS.

Untuk menentukanendpoint-urlparameter untuk perintah CLI Anda, jalankan perintah ini.

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

Perintah ini mengembalikan output berikut.

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

Endpoint Lowongan Kerja tidak mendukung ALPNz-amzn-http-ca.

Manajemen pekerjaan dan tipe data kontrol

Jenis data berikut digunakan oleh manajemen dan kontrol aplikasi untuk berkomunikasi denganAWS IoTPekerjaan.

YangJobobjek berisi rincian tentang pekerjaan. Contoh berikut menunjukkan sintaks:

{ "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 } }

Untuk informasi lebih lanjut, lihat Job atau job.

YangJobSummaryobjek berisi ringkasan pekerjaan. Contoh berikut menunjukkan sintaks:

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

Untuk informasi lebih lanjut, lihat JobSummary atau job-summary.

YangJobExecutionobjek merupakan pelaksanaan pekerjaan pada perangkat. Contoh berikut menunjukkan sintaks:

catatan

Saat Anda menggunakan operasi API control plane,JobExecutiontipe data tidak mengandungJobDocumentbidang. Untuk mendapatkan informasi ini, Anda dapat menggunakanGetJobDocumentOperasi API atauget-job-documentPerintah CLI.

{ "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 }

Untuk informasi lebih lanjut, lihat JobExecution atau job-execution.

YangJobExecutionSummaryobjek berisi informasi ringkasan eksekusi pekerjaan. Contoh berikut menunjukkan sintaks:

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

Untuk informasi lebih lanjut, lihat JobExecutionSummary atau job-execution-summary.

YangJobExecutionSummaryForJobobjek berisi ringkasan informasi tentang eksekusi pekerjaan untuk pekerjaan tertentu. Contoh berikut menunjukkan sintaks:

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

Untuk informasi lebih lanjut, lihat JobExecutionSummaryForJob atau job-execution-summary-for-job.

YangJobExecutionSummaryForThingobjek berisi ringkasan informasi tentang eksekusi pekerjaan pada hal tertentu. fContoh berikut menunjukkan sintaks:

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

Untuk informasi lebih lanjut, lihat JobExecutionSummaryForThing atau job-execution-summary-for-thing.

Manajemen pekerjaan dan pengendalian operasi API

Gunakan operasi API atau perintah CLI berikut:

Mengaitkan kelompok dengan pekerjaan berkelanjutan. Kriteria berikut harus dipenuhi:

  • Pekerjaan harus telah dibuat dengantargetSelectionfield set keCONTINUOUS.

  • Status pekerjaan saat ini harusIN_PROGRESS.

  • Jumlah total target yang terkait dengan pekerjaan tidak boleh melebihi 100.

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

Untuk informasi selengkapnya, lihat AssociateTargetsWithJob.

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

cli-input-jsonFormat:

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

Untuk informasi selengkapnya, lihat associate-targets-with-job.

Membatalkan pekerjaan.

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

Untuk informasi selengkapnya, lihat CancelJob.

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

cli-input-jsonFormat:

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

Untuk informasi selengkapnya, lihat cancel-job.

Membatalkan eksekusi pekerjaan di perangkat.

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

Untuk informasi selengkapnya, lihat 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]

cli-input-jsonFormat:

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

Untuk informasi selengkapnya, lihat cancel-job-execution.

Menciptakan pekerjaan. Anda dapat memberikan dokumen pekerjaan sebagai tautan ke file dalam bucket Amazon S3 (documentSourceparameter), atau dalam tubuh permintaan (documentparameter).

Pekerjaan dapat dibuatberkesinambungandengan mengatur opsionaltargetSelectionparameter keCONTINUOUS(defaultnya adalahSNAPSHOT). Pekerjaan berkelanjutan dapat digunakan untuk onboard atau meng-upgrade perangkat saat ditambahkan ke grup karena terus berjalan dan diluncurkan pada hal-hal yang baru ditambahkan. Hal ini dapat terjadi bahkan setelah hal-hal dalam kelompok pada saat pekerjaan itu dibuat telah menyelesaikan pekerjaan.

Pekerjaan dapat memiliki opsionalTimeoutConfig, yang menetapkan nilai timer dalam proses. Timer dalam proses tidak dapat diperbarui dan berlaku untuk semua eksekusi pekerjaan.

Validasi berikut dilakukan pada argumen keCreateJobAPI:

  • Yangtargetsargumen harus berupa daftar hal yang valid atau kelompok hal ARN. Semua hal dan kelompok hal harus ada diAkun AWS.

  • YangdocumentSourceargumen harus berupa URL Amazon S3 yang valid untuk dokumen pekerjaan. URL Amazon S3 ada dalam bentuk:https://s3.amazonaws.com/bucketName/objectName.

  • Dokumen yang disimpan dalam URL yang ditentukan olehdocumentSourceargumen harus berupa dokumen JSON yang dikodekan UTF-8.

  • Ukuran dokumen pekerjaan dibatasi hingga 32 KB karena batas ukuran pesan MQTT (128 KB) dan enkripsi.

  • YangjobIdharus unik diAkun 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 } }

Untuk informasi selengkapnya, lihat 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]

cli-input-jsonFormat:

{ "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" } }

Untuk informasi selengkapnya, lihat create-job.

Menghapus pekerjaan dan eksekusi pekerjaan terkait.

Menghapus pekerjaan dapat memakan waktu, tergantung pada jumlah eksekusi pekerjaan yang dibuat untuk pekerjaan dan berbagai faktor lainnya. Sementara pekerjaan sedang dihapus, status pekerjaan ditampilkan sebagai “DELETION_IN_PROGRESS”. Mencoba menghapus atau membatalkan pekerjaan yang statusnya sudah “DELETION_IN_PROGRESS” menghasilkan kesalahan.

HTTPS request
DELETE /jobs/jobId?force=force

Untuk informasi selengkapnya, lihat DeleteJob.

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

cli-input-jsonFormat:

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

Untuk informasi selengkapnya, lihat delete-job.

Menghapus eksekusi pekerjaan.

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

Untuk informasi selengkapnya, lihat 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]

cli-input-jsonFormat:

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

Untuk informasi selengkapnya, lihat delete-job-execution.

Mendapat rincian eksekusi pekerjaan.

HTTPS request
GET /jobs/jobId

Untuk informasi selengkapnya, lihat DescribeJob.

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

cli-input-jsonFormat:

{ "jobId": "string" }

Untuk informasi selengkapnya, lihat describe-job.

Mendapat rincian eksekusi pekerjaan. Status eksekusi pekerjaan harusSUCCEEDEDatauFAILED.

HTTPS request
GET /things/thingName/jobs/jobId?executionNumber=executionNumber

Untuk informasi selengkapnya, lihat DescribeJobExecution.

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

cli-input-jsonFormat:

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

Untuk informasi selengkapnya, lihat describe-job-execution.

Mendapat dokumen pekerjaan untuk pekerjaan.

catatan

URL placeholder tidak diganti dengan URL Amazon S3 yang telah ditandatangani sebelumnya dalam dokumen yang dikembalikan. URL presigned dihasilkan hanya bilaAWS IoTLayanan pekerjaan menerima permintaan melalui MQTT.

HTTPS request
GET /jobs/jobId/job-document

Untuk informasi selengkapnya, lihat GetJobDocument.

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

cli-input-jsonFormat:

{ "jobId": "string" }

Untuk informasi selengkapnya, lihat get-job-document.

Mendapat daftar eksekusi pekerjaan untuk pekerjaan.

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

Untuk informasi selengkapnya, lihat 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]

cli-input-jsonFormat:

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

Untuk informasi selengkapnya, lihat list-job-executions-for-job.

Mendapat daftar eksekusi pekerjaan untuk sesuatu.

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

Untuk informasi selengkapnya, lihat 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]

cli-input-jsonFormat:

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

Untuk informasi selengkapnya, lihat list-job-executions-for-thing.

Mendapat daftar pekerjaan diAkun AWS.

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

Untuk informasi selengkapnya, lihat 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]

cli-input-jsonFormat:

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

Untuk informasi selengkapnya, lihat list-jobs.

Memperbarui bidang yang didukung dari pekerjaan yang ditentukan. Nilai yang diperbarui untuktimeoutConfigberlaku hanya untuk peluncuran yang baru dalam proses. Saat ini, peluncuran dalam proses terus diluncurkan dengan konfigurasi batas waktu sebelumnya.

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 } }

Untuk informasi selengkapnya, lihat 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]

cli-input-jsonFormat:

{ "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 } }

Untuk informasi selengkapnya, lihat update-job.