View a markdown version of this page

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 pekerjaan dan kontrol di CLI dan melalui protokol HTTPS.

Untuk menentukan endpoint-url parameter 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

Titik akhir Jobs tidak mendukung ALPNx-amzn-http-ca.

Jika Anda menggunakan titik akhir dual-stack (IPv6 dan IPv6), gunakan titik akhir. iot:Data-ATS iot:JobsEndpoint hanya mendukung IPv4.

Manajemen pekerjaan dan tipe data kontrol

Jenis data berikut digunakan oleh aplikasi manajemen dan kontrol untuk berkomunikasi dengan AWS IoT Jobs.

Ob Job jek berisi detail 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 selengkapnya, lihat Job atau job.

Ob JobSummary jek 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 selengkapnya, lihat JobSummary atau job-summary.

Ob JobExecution jek mewakili pelaksanaan pekerjaan pada perangkat. Contoh berikut menunjukkan sintaks:

catatan

Saat Anda menggunakan operasi API bidang kontrol, tipe JobExecution data tidak berisi JobDocument bidang. Untuk mendapatkan informasi ini, Anda dapat menggunakan operasi GetJobDocument API atau perintah get-job-document 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 selengkapnya, lihat JobExecution atau job-execution.

Ob JobExecutionSummary jek 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 selengkapnya, lihat JobExecutionSummary atau job-execution-summary.

Ob JobExecutionSummaryForJob jek 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 selengkapnya, lihat JobExecutionSummaryForJob atau job-execution-summary-for-job.

Ob JobExecutionSummaryForThing jek 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 selengkapnya, lihat JobExecutionSummaryForThing atau job-execution-summary-for-thing.

Manajemen pekerjaan dan kontrol operasi API

Gunakan operasi API atau perintah CLI berikut:

Mengaitkan kelompok dengan pekerjaan berkelanjutan. Kriteria berikut harus dipenuhi:

  • Pekerjaan harus dibuat dengan targetSelection bidang disetel keCONTINUOUS.

  • Status pekerjaan harus saat iniIN_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 pada 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 di bucket Amazon S3 (documentSourceparameter), atau di badan permintaan (documentparameter).

Pekerjaan dapat dibuat terus menerus dengan mengatur targetSelection parameter opsional ke CONTINUOUS (defaultnya adalahSNAPSHOT). Pekerjaan berkelanjutan dapat digunakan untuk meng-onboard atau memutakhirkan 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 grup pada saat pekerjaan dibuat telah menyelesaikan pekerjaan.

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

Validasi berikut dilakukan pada argumen ke CreateJob API:

  • targetsArgumen harus berupa daftar ARN grup benda atau benda yang valid. Semua hal dan kelompok benda harus ada di Anda Akun AWS.

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

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

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

  • Itu jobId harus unik dalam diri Anda Akun 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. Saat 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.

Mendapatkan rincian pelaksanaan 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.

Mendapatkan rincian eksekusi pekerjaan. Status eksekusi pekerjaan harus SUCCEEDED atauFAILED.

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.

Mendapatkan dokumen pekerjaan untuk pekerjaan.

catatan

URL placeholder tidak diganti dengan URL Amazon S3 yang telah ditandatangani sebelumnya dalam dokumen yang dikembalikan. URL yang telah ditandatangani dibuat hanya ketika layanan AWS IoT Jobs 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.

Mendapatkan daftar eksekusi pekerjaan untuk suatu 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.

Mendapatkan daftar eksekusi pekerjaan untuk suatu hal.

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.

Mendapatkan daftar pekerjaan di Anda Akun 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 untuk timeoutConfig berlaku hanya untuk peluncuran yang baru sedang berlangsung. Saat ini, peluncuran yang sedang berlangsung 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.