

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

# AWS IoT pekerjaan operasi API
<a name="jobs-api"></a>

AWS IoT Jobs API dapat digunakan untuk salah satu dari kategori berikut:
+ Tugas administratif seperti manajemen dan kontrol pekerjaan. Ini adalah *pesawat kontrol*.
+ Perangkat yang melakukan pekerjaan tersebut. Ini adalah *pesawat data*, yang memungkinkan Anda mengirim dan menerima data. 

Manajemen dan kontrol Job menggunakan API protokol HTTPS. Perangkat dapat menggunakan MQTT atau API protokol HTTPS. API bidang kontrol dirancang untuk volume panggilan rendah yang khas saat membuat dan melacak pekerjaan. Biasanya membuka koneksi untuk satu permintaan, dan kemudian menutup koneksi setelah respons diterima. Bidang data HTTPS dan MQTT API memungkinkan polling panjang. Operasi API ini dirancang untuk sejumlah besar lalu lintas yang dapat menskalakan ke jutaan perangkat.

Setiap AWS IoT Jobs HTTPS API memiliki perintah yang sesuai yang memungkinkan Anda untuk memanggil API dari AWS Command Line Interface (AWS CLI). Perintahnya huruf kecil, dengan tanda hubung di antara kata-kata yang membentuk nama API. Misalnya, Anda dapat menjalankan `CreateJob` API pada CLI dengan mengetik:

```
aws iot create-job ...
```

Jika terjadi kesalahan selama operasi, Anda mendapatkan respons kesalahan yang berisi informasi tentang kesalahan tersebut.

## ErrorResponse
<a name="jobs-mqtt-error-response"></a>

Berisi informasi tentang kesalahan yang terjadi selama operasi layanan AWS IoT Jobs.

Contoh berikut menunjukkan sintaks operasi ini:

```
{
    "code": "ErrorCode",
    "message": "string",
    "clientToken": "string",
    "timestamp": timestamp,
    "executionState": JobExecutionState
}
```

Berikut ini adalah deskripsi tentang ini`ErrorResponse`:

`code`  
ErrorCode dapat diatur ke:    
InvalidTopic  
Permintaan dikirim ke topik di namespace AWS IoT Jobs yang tidak dipetakan ke operasi API apa pun.  
InvalidJson  
Isi permintaan tidak dapat ditafsirkan sebagai JSON yang dikodekan UTF-8 yang valid.  
InvalidRequest  
Isi permintaan tidak valid. Misalnya, kode ini dikembalikan ketika `UpdateJobExecution` permintaan berisi detail status yang tidak valid. Pesan tersebut berisi detail tentang kesalahan tersebut.  
InvalidStateTransition  
Pembaruan mencoba mengubah eksekusi pekerjaan ke status yang tidak valid karena status eksekusi pekerjaan saat ini. Misalnya, upaya untuk mengubah permintaan dalam status BERHASIL untuk menyatakan IN\$1PROGRESS. Dalam hal ini, isi pesan kesalahan juga berisi `executionState` bidang.  
ResourceNotFound  
Yang `JobExecution` ditentukan oleh topik permintaan tidak ada.   
VersionMismatch  
Versi yang diharapkan yang ditentukan dalam permintaan tidak cocok dengan versi eksekusi pekerjaan di layanan AWS IoT Jobs. Dalam hal ini, isi pesan kesalahan juga berisi `executionState` bidang.  
InternalError  
Ada kesalahan internal selama pemrosesan permintaan.  
RequestThrottled  
Permintaan itu dibatasi.  
TerminalStateReached  
Terjadi ketika perintah untuk menggambarkan pekerjaan dilakukan pada pekerjaan yang berada dalam status terminal.

`message`  
String pesan kesalahan.

`clientToken`  
String arbitrer yang digunakan untuk mengkorelasikan permintaan dengan jawabannya.

`timestamp`  
Waktu, dalam hitungan detik sejak zaman.

`executionState`  
Sebuah objek [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). Bidang ini disertakan hanya jika `code` bidang memiliki nilai `InvalidStateTransition` atau`VersionMismatch`. Hal ini membuatnya tidak perlu dalam kasus ini untuk melakukan `DescribeJobExecution` permintaan terpisah untuk mendapatkan data status eksekusi pekerjaan saat ini.

**Topics**
+ [Manajemen pekerjaan dan kontrol API dan tipe data](jobs-management-control-api.md)
+ [Pekerjaan perangkat MQTT dan HTTPS API operasi dan tipe data](jobs-mqtt-https-api.md)

# Manajemen pekerjaan dan kontrol API dan tipe data
<a name="jobs-management-control-api"></a>

**Topics**
+ [Jenis data manajemen dan kontrol pekerjaan](#jobs-control-plane-data-types)
+ [Manajemen pekerjaan dan pengendalian operasi API](#jobs-http-api)

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**  
Endpoint Jobs tidak mendukung `x-amzn-http-ca` ALPN.  
Jika Anda menggunakan titik akhir dual-stack (IPv6 and IPv6), gunakan endpoint. `iot:Data-ATS` `iot:Jobs`Endpoint hanya IPv4 mendukung.

## Jenis data manajemen dan kontrol pekerjaan
<a name="jobs-control-plane-data-types"></a>

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

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

`Job`Objek 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 [https://docs.aws.amazon.com/iot/latest/apireference/API_Job.html](https://docs.aws.amazon.com/iot/latest/apireference/API_Job.html) atau [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>

`JobSummary`Objek 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 [https://docs.aws.amazon.com/iot/latest/apireference/API_JobSummary.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobSummary.html) atau [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>

`JobExecution`Objek 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 [https://docs.aws.amazon.com/iot/latest/apireference/API_GetJobDocument.html](https://docs.aws.amazon.com/iot/latest/apireference/API_GetJobDocument.html)API atau perintah [https://docs.aws.amazon.com/cli/latest/reference/get-job-document.html](https://docs.aws.amazon.com/cli/latest/reference/get-job-document.html)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 [https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecution.html) atau [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>

`JobExecutionSummary`Objek 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 [https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummary.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummary.html) atau [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>

`JobExecutionSummaryForJob`Objek 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 [https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummaryForJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummaryForJob.html) atau [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>

`JobExecutionSummaryForThing`Objek berisi ringkasan informasi tentang eksekusi pekerjaan pada hal tertentu. FThe contoh berikut menunjukkan sintaks:

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

Untuk informasi selengkapnya, lihat [https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummaryForThing.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummaryForThing.html) atau [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).

## Manajemen pekerjaan dan pengendalian operasi API
<a name="jobs-http-api"></a>

Gunakan operasi API atau perintah CLI berikut:

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

Mengasosiasikan kelompok dengan pekerjaan berkelanjutan. Kriteria berikut harus dipenuhi:
+ Pekerjaan harus dibuat dengan `targetSelection` bidang diatur ke`CONTINUOUS`.
+ Status pekerjaan saat ini harus`IN_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 [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]
```

 `cli-input-json`format:

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

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

Membatalkan pekerjaan.

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

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

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

 `cli-input-json`format:

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

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

Membatalkan eksekusi pekerjaan di perangkat.

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

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

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

 `cli-input-json`format:

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

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

Menciptakan pekerjaan. Anda dapat memberikan dokumen pekerjaan sebagai tautan ke file di bucket Amazon S3 (`documentSource`parameter), atau di badan permintaan (`document`parameter).

Pekerjaan dapat dibuat *terus menerus* dengan mengatur `targetSelection` parameter opsional ke `CONTINUOUS` (defaultnya adalah`SNAPSHOT`). Pekerjaan berkelanjutan dapat digunakan untuk onboard atau meningkatkan 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 dibuat telah menyelesaikan pekerjaan.

Pekerjaan dapat memiliki opsional [TimeoutConfig](https://docs.aws.amazon.com//iot/latest/apireference/API_TimeoutConfig.html), yang menetapkan nilai timer yang sedang berlangsung. Timer yang sedang berlangsung tidak dapat diperbarui dan berlaku untuk semua eksekusi pekerjaan.

Validasi berikut dilakukan pada argumen ke API: `CreateJob`
+ `targets`Argumen harus berupa daftar hal atau kelompok benda yang valid ARNs. Semua hal dan kelompok benda harus ada di dalam Anda Akun AWS.
+ `documentSource`Argumen harus berupa URL Amazon S3 yang valid ke dokumen pekerjaan. Amazon S3 URLs dalam bentuk:. `https://s3.amazonaws.com/bucketName/objectName`
+ Dokumen yang disimpan dalam URL yang ditentukan oleh `documentSource` argumen harus berupa dokumen JSON yang dikodekan UTF-8.
+ Ukuran dokumen pekerjaan dibatasi hingga 32 KB karena batas ukuran pesan MQTT (128 KB) dan enkripsi.
+ `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 [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]
```

 `cli-input-json`format:

```
{
    "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 [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>

Menghapus pekerjaan dan eksekusi pekerjaan terkait.

Menghapus pekerjaan dapat memakan waktu, tergantung pada jumlah eksekusi pekerjaan yang dibuat untuk pekerjaan itu dan berbagai faktor lainnya. Saat pekerjaan sedang dihapus, status pekerjaan ditampilkan sebagai “DELETION\$1IN\$1PROGRESS”. Mencoba menghapus atau membatalkan pekerjaan yang statusnya sudah “DELETION\$1IN\$1PROGRESS” menghasilkan kesalahan.

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

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

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

 `cli-input-json`format:

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

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

Menghapus eksekusi pekerjaan.

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

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

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

 `cli-input-json`format:

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

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

Mendapat rincian pelaksanaan pekerjaan.

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

```
GET /jobs/jobId
```

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

 `cli-input-json`format:

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

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

Mendapat rincian eksekusi pekerjaan. Status eksekusi pekerjaan harus `SUCCEEDED` atau`FAILED`.

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

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

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

 `cli-input-json`format:

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

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

Mendapat dokumen pekerjaan untuk suatu pekerjaan.

**catatan**  
Placeholder URLs tidak diganti dengan Amazon S3 URLs presigned dalam dokumen yang dikembalikan. Presigned URLs dibuat hanya jika layanan AWS IoT Jobs menerima permintaan melalui MQTT.

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

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

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

 `cli-input-json`format:

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

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

Mendapat daftar eksekusi pekerjaan untuk suatu pekerjaan.

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

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

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

 `cli-input-json`format:

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

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

Mendapat daftar eksekusi pekerjaan untuk suatu hal.

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

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

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

 `cli-input-json`format:

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

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

Mendapat 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 [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]
```

 `cli-input-json`format:

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

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

Memperbarui bidang yang didukung dari pekerjaan yang ditentukan. Nilai yang diperbarui `timeoutConfig` untuk diterapkan hanya untuk peluncuran yang baru dalam proses. 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 [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]
```

 `cli-input-json`format:

```
{
"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 [https://docs.aws.amazon.com/cli/latest/reference/iot/update-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/update-job.html).

------

# Pekerjaan perangkat MQTT dan HTTPS API operasi dan tipe data
<a name="jobs-mqtt-https-api"></a>

Perintah berikut tersedia melalui protokol MQTT dan HTTPS. Gunakan operasi API ini pada bidang data untuk perangkat yang menjalankan pekerjaan.

## Jenis data MQTT dan HTTPS perangkat pekerjaan
<a name="jobs-data-plane-data-types"></a>

Tipe data berikut digunakan untuk berkomunikasi dengan layanan AWS IoT Jobs melalui protokol MQTT dan HTTPS.

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

`JobExecution`Objek mewakili pelaksanaan pekerjaan pada perangkat. Contoh berikut menunjukkan sintaks:

**catatan**  
Saat Anda menggunakan operasi API bidang data MQTT dan HTTP, tipe `JobExecution` data berisi bidang. `JobDocument` Perangkat Anda dapat menggunakan informasi ini untuk mengambil dokumen pekerjaan dari eksekusi pekerjaan.

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

Untuk informasi selengkapnya, lihat [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) atau [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`Berisi informasi tentang keadaan eksekusi pekerjaan. Contoh berikut menunjukkan sintaks:

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

Untuk informasi selengkapnya, lihat [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) atau [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>

Berisi subset informasi tentang eksekusi pekerjaan. Contoh berikut menunjukkan sintaks:

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

Untuk informasi selengkapnya, lihat [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) atau [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**
+ [Jenis data MQTT dan HTTPS perangkat pekerjaan](#jobs-data-plane-data-types)
+ [Pekerjaan perangkat operasi MQTT API](jobs-mqtt-api.md)
+ [Pekerjaan perangkat HTTP API](jobs-http-device-api.md)

# Pekerjaan perangkat operasi MQTT API
<a name="jobs-mqtt-api"></a><a name="jobs-mqtt-note"></a>

Anda dapat mengeluarkan perintah perangkat pekerjaan dengan menerbitkan pesan MQTT ke [topik Cadangan yang digunakan untuk](reserved-topics.md#reserved-topics-job) perintah Pekerjaan. 

Klien sisi perangkat Anda harus berlangganan topik pesan respons dari perintah ini. Jika Anda menggunakan Klien AWS IoT Perangkat, perangkat Anda akan secara otomatis berlangganan topik respons. Ini berarti bahwa broker pesan akan mempublikasikan topik pesan respons kepada klien yang menerbitkan pesan perintah, apakah klien Anda telah berlangganan topik pesan respons atau tidak. Pesan respons ini tidak melewati broker pesan dan tidak dapat berlangganan oleh klien atau aturan lain.

Saat berlangganan topik pekerjaan dan `jobExecution` acara untuk solusi pemantauan armada Anda, pertama-tama aktifkan [acara pelaksanaan pekerjaan dan pekerjaan untuk menerima acara](iot-events.md) apa pun di sisi cloud. Pesan kemajuan pekerjaan yang diproses melalui broker pesan dan dapat digunakan oleh AWS IoT aturan dipublikasikan sebagai[Peristiwa tugas](events-jobs.md). Karena broker pesan menerbitkan pesan respons, bahkan tanpa berlangganan eksplisit, klien Anda harus dikonfigurasi untuk menerima dan mengidentifikasi pesan yang diterimanya. Klien Anda juga harus mengonfirmasi bahwa topik pesan masuk berlaku untuk nama barang klien sebelum klien bertindak atas pesan tersebut. *thingName*

**catatan**  
Pesan yang AWS IoT dikirim sebagai respons terhadap pesan perintah MQTT Jobs API dibebankan ke akun Anda, terlepas dari apakah Anda berlangganan pesan tersebut secara eksplisit atau tidak.

Berikut ini menunjukkan operasi MQTT API dan sintaks permintaan dan responsnya. Semua operasi MQTT API memiliki parameter berikut:

clientToken  
Token klien opsional yang digunakan untuk menghubungkan permintaan dan tanggapan. Masukkan nilai arbitrer di sini dan itu tercermin dalam respons.

`timestamp`  
Waktu dalam hitungan detik sejak zaman, ketika pesan dikirim.

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

Mendapat daftar semua pekerjaan yang tidak dalam status terminal, untuk hal tertentu.

Untuk menjalankan API ini, terbitkan pesan di`$aws/things/thingName/jobs/get`.

Minta muatan:

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

Broker pesan akan mempublikasikan `$aws/things/thingName/jobs/get/accepted` dan `$aws/things/thingName/jobs/get/rejected` bahkan tanpa berlangganan khusus untuk mereka. Namun, agar klien Anda menerima pesan, itu harus mendengarkannya. Untuk informasi selengkapnya, lihat [catatan tentang pesan API Pekerjaan](#jobs-mqtt-note).

Payload respons:

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

Dimana `inProgressJobs` dan `queuedJobs` mengembalikan daftar [JobExecutionSummary](jobs-mqtt-https-api.md#jobs-mqtt-job-execution-summary) objek yang memiliki status `IN_PROGRESS` atau`QUEUED`.

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

Mendapat dan memulai eksekusi pekerjaan tertunda berikutnya untuk suatu hal (status `IN_PROGRESS` atau`QUEUED`). 
+ Setiap eksekusi pekerjaan dengan status `IN_PROGRESS` dikembalikan terlebih dahulu.
+ Eksekusi Job dikembalikan sesuai urutan antrian. Ketika sesuatu ditambahkan atau dihapus dari kelompok sasaran untuk pekerjaan Anda, konfirmasikan urutan peluncuran eksekusi pekerjaan baru dibandingkan dengan eksekusi pekerjaan yang ada.
+ Jika eksekusi pekerjaan tertunda berikutnya`QUEUED`, statusnya berubah menjadi `IN_PROGRESS` dan rincian status eksekusi pekerjaan ditetapkan seperti yang ditentukan.
+ Jika eksekusi pekerjaan tertunda berikutnya sudah`IN_PROGRESS`, detail statusnya tidak berubah.
+ Jika tidak ada eksekusi pekerjaan yang tertunda, respons tidak menyertakan `execution` bidang.
+ Secara opsional, Anda dapat membuat pengatur waktu langkah dengan menetapkan nilai untuk `stepTimeoutInMinutes` properti. Jika Anda tidak memperbarui nilai properti ini dengan menjalankan`UpdateJobExecution`, eksekusi pekerjaan akan habis saat pengatur waktu langkah kedaluwarsa.

Untuk menjalankan API ini, terbitkan pesan di`$aws/things/thingName/jobs/start-next`.

Minta muatan:

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

`statusDetails`  
Kumpulan pasangan nama-nilai yang menggambarkan status eksekusi pekerjaan. Jika tidak ditentukan, `statusDetails` tidak berubah.

`stepTimeOutInMinutes`  
Menentukan jumlah waktu perangkat ini harus menyelesaikan pelaksanaan pekerjaan ini. Jika status eksekusi pekerjaan tidak disetel ke status terminal sebelum pengatur waktu ini kedaluwarsa, atau sebelum pengatur waktu disetel ulang, (dengan memanggil`UpdateJobExecution`, menyetel status ke `IN_PROGRESS` dan menentukan nilai batas waktu baru di bidang`stepTimeoutInMinutes`) status eksekusi pekerjaan disetel ke. `TIMED_OUT` Menyetel batas waktu ini tidak berpengaruh pada batas waktu eksekusi pekerjaan yang mungkin telah ditentukan saat pekerjaan dibuat (`CreateJob`menggunakan `timeoutConfig` bidang).   
Nilai yang valid untuk parameter ini berkisar dari 1 hingga 10080 (1 menit hingga 7 hari). Nilai -1 juga valid dan akan membatalkan pengatur waktu langkah saat ini (dibuat oleh penggunaan sebelumnya UpdateJobExecutionRequest).

Broker pesan akan mempublikasikan `$aws/things/thingName/jobs/start-next/accepted` dan `$aws/things/thingName/jobs/start-next/rejected` bahkan tanpa berlangganan khusus untuk mereka. Namun, agar klien Anda menerima pesan, itu harus mendengarkannya. Untuk informasi selengkapnya, lihat [catatan tentang pesan API Pekerjaan](#jobs-mqtt-note).

Payload respons:

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

`execution`Dimana sebuah [JobExecution](jobs-mqtt-https-api.md#jobs-mqtt-job-execution-data) objek. Contoh:

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

Mendapat informasi rinci tentang eksekusi pekerjaan.

Anda dapat mengatur `jobId` to `$next` untuk mengembalikan eksekusi pekerjaan tertunda berikutnya untuk suatu hal (dengan status `IN_PROGRESS` atau`QUEUED`).

Untuk menjalankan API ini, terbitkan pesan di`$aws/things/thingName/jobs/jobId/get`. 

Minta muatan:

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

`thingName`  
Nama benda yang terkait dengan perangkat.

`jobId`  
Pengidentifikasi unik yang ditetapkan untuk pekerjaan ini saat dibuat.   
Atau gunakan `$next` untuk mengembalikan eksekusi pekerjaan tertunda berikutnya untuk suatu hal (dengan status `IN_PROGRESS` atau`QUEUED`). Dalam hal ini, setiap eksekusi pekerjaan dengan status `IN_PROGRESS` dikembalikan terlebih dahulu. Eksekusi Job dikembalikan dalam urutan di mana mereka diciptakan.

`executionNumber`  
(Opsional) Nomor yang mengidentifikasi eksekusi pekerjaan pada perangkat. Jika tidak ditentukan, eksekusi pekerjaan terbaru dikembalikan.

`includeJobDocument`  
(Opsional) Kecuali diatur ke`false`, respons berisi dokumen pekerjaan. Nilai default-nya `true`.

Broker pesan akan mempublikasikan `$aws/things/thingName/jobs/jobId/get/accepted` dan `$aws/things/thingName/jobs/jobId/get/rejected` bahkan tanpa berlangganan khusus untuk mereka. Namun, agar klien Anda menerima pesan, itu harus mendengarkannya. Untuk informasi selengkapnya, lihat [catatan tentang pesan API Pekerjaan](#jobs-mqtt-note).

Payload respons:

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

`execution`Dimana sebuah [JobExecution](jobs-mqtt-https-api.md#jobs-mqtt-job-execution-data) objek.

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

Memperbarui status eksekusi pekerjaan. Anda dapat secara opsional membuat pengatur waktu langkah dengan menetapkan nilai untuk `stepTimeoutInMinutes` properti. Jika Anda tidak memperbarui nilai properti ini dengan menjalankan `UpdateJobExecution` lagi, eksekusi pekerjaan akan habis saat pengatur waktu langkah kedaluwarsa.

Untuk menjalankan API ini, terbitkan pesan di`$aws/things/thingName/jobs/jobId/update`. 

Minta muatan:

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

`status`  
Status baru untuk pelaksanaan pekerjaan (`IN_PROGRESS`,, `FAILED``SUCCEEDED`, atau`REJECTED`). Ini harus ditentukan pada setiap pembaruan.

`statusDetails`  
Kumpulan pasangan nama-nilai yang menggambarkan status eksekusi pekerjaan. Jika tidak ditentukan, `statusDetails` tidak berubah.

`expectedVersion`  
Versi eksekusi pekerjaan saat ini yang diharapkan. Setiap kali Anda memperbarui eksekusi pekerjaan, versinya bertambah. Jika versi eksekusi pekerjaan yang disimpan dalam layanan AWS IoT Jobs tidak cocok, pembaruan ditolak dengan `VersionMismatch` kesalahan. Sebuah [ErrorResponse](jobs-api.md#jobs-mqtt-error-response) yang berisi data status eksekusi pekerjaan saat ini juga dikembalikan. (Ini membuatnya tidak perlu melakukan `DescribeJobExecution` permintaan terpisah untuk mendapatkan data status eksekusi pekerjaan.)

`executionNumber`  
(Opsional) Nomor yang mengidentifikasi eksekusi pekerjaan pada perangkat. Jika tidak ditentukan, eksekusi pekerjaan terbaru digunakan.

`includeJobExecutionState`  
(Opsional) Bila disertakan dan diatur ke`true`, respon berisi `JobExecutionState` bidang. Nilai default-nya `false`.

`includeJobDocument`  
(Opsional) Bila disertakan dan diatur ke`true`, respon berisi`JobDocument`. Nilai default-nya `false`.

`stepTimeoutInMinutes`  
Menentukan jumlah waktu perangkat ini harus menyelesaikan pelaksanaan pekerjaan ini. Jika status eksekusi pekerjaan tidak disetel ke status terminal sebelum pengatur waktu ini kedaluwarsa, atau sebelum pengatur waktu disetel ulang, status eksekusi pekerjaan disetel ke`TIMED_OUT`. Menyetel atau mengatur ulang batas waktu ini tidak berpengaruh pada batas waktu pelaksanaan pekerjaan yang mungkin telah ditentukan saat pekerjaan dibuat. 

Broker pesan akan mempublikasikan `$aws/things/thingName/jobs/jobId/update/accepted` dan `$aws/things/thingName/jobs/jobId/update/rejected` bahkan tanpa berlangganan khusus untuk mereka. Namun, agar klien Anda menerima pesan, itu harus mendengarkannya. Untuk informasi selengkapnya, lihat [catatan tentang pesan API Pekerjaan](#jobs-mqtt-note).

Payload respons:

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

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

`jobDocument`  
Objek [dokumen pekerjaan](key-concepts-jobs.md).  
Dalam tanggapan MQTT, `jobDocument` bidang adalah objek JSON. Dalam tanggapan HTTP, ini adalah representasi string dari objek JSON.

`timestamp`  
Waktu dalam hitungan detik sejak zaman, ketika pesan dikirim.

`clientToken`  
Token klien yang digunakan untuk mengkorelasikan permintaan dan tanggapan.

Saat Anda menggunakan protokol MQTT, Anda juga dapat melakukan pembaruan berikut:

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

Dikirim setiap kali eksekusi pekerjaan ditambahkan atau dihapus dari daftar eksekusi pekerjaan yang tertunda untuk suatu hal.

Gunakan topik:

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

Muatan pesan:

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

Dikirim setiap kali ada perubahan eksekusi pekerjaan berikutnya dalam daftar eksekusi pekerjaan yang tertunda untuk suatu hal, seperti yang didefinisikan untuk [https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJobExecution.html)dengan `jobId``$next`. Pesan ini tidak dikirim ketika rincian eksekusi pekerjaan berikutnya berubah, hanya ketika pekerjaan berikutnya yang akan dikembalikan oleh `DescribeJobExecution` with `jobId` `$next` telah berubah. Pertimbangkan eksekusi pekerjaan J1 dan J2 dengan status. `QUEUED` J1 berikutnya dalam daftar eksekusi pekerjaan yang tertunda. Jika status J2 diubah menjadi `IN_PROGRESS` sementara status J1 tetap tidak berubah, maka pemberitahuan ini dikirim dan berisi rincian J2.

Gunakan topik:

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

Muatan pesan:

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

# Pekerjaan perangkat HTTP API
<a name="jobs-http-device-api"></a>

Perangkat dapat berkomunikasi dengan AWS IoT Jobs menggunakan HTTP Signature Version 4 pada port 443. Ini adalah metode yang digunakan oleh AWS SDKs dan CLI. Untuk informasi selengkapnya tentang alat tersebut, lihat [Referensi AWS CLI Perintah: iot-jobs-data](https://docs.aws.amazon.com/cli/latest/reference/iot-jobs-data/index.html) atau [AWS SDKs dan Alat](https://aws.amazon.com/tools/#sdk).

Perintah berikut tersedia untuk perangkat yang menjalankan pekerjaan. Untuk informasi tentang penggunaan operasi API dengan protokol MQTT, lihat. [Pekerjaan perangkat operasi MQTT API](jobs-mqtt-api.md)

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

Mendapat daftar semua pekerjaan yang tidak dalam status terminal, untuk hal tertentu.

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

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

Respons:

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

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

 `cli-input-json`format:

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

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

Mendapat dan memulai eksekusi pekerjaan tertunda berikutnya untuk suatu hal (dengan status `IN_PROGRESS` atau`QUEUED`). 
+ Setiap eksekusi pekerjaan dengan status `IN_PROGRESS` dikembalikan terlebih dahulu.
+ Eksekusi Job dikembalikan dalam urutan di mana mereka diciptakan.
+ Jika eksekusi pekerjaan tertunda berikutnya`QUEUED`, statusnya berubah menjadi `IN_PROGRESS` dan rincian status eksekusi pekerjaan ditetapkan seperti yang ditentukan.
+ Jika eksekusi pekerjaan tertunda berikutnya sudah`IN_PROGRESS`, detail statusnya tidak berubah.
+ Jika tidak ada eksekusi pekerjaan yang tertunda, respons tidak menyertakan `execution` bidang.
+ Secara opsional, Anda dapat membuat pengatur waktu langkah dengan menetapkan nilai untuk `stepTimeoutInMinutes` properti. Jika Anda tidak memperbarui nilai properti ini dengan menjalankan`UpdateJobExecution`, eksekusi pekerjaan akan habis saat pengatur waktu langkah kedaluwarsa.

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

Contoh berikut menunjukkan sintaks permintaan:

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

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

**Sinopsis:**

```
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]
```

 `cli-input-json`format:

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

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

Mendapat informasi rinci tentang eksekusi pekerjaan.

Anda dapat mengatur `jobId` to `$next` untuk mengembalikan eksekusi pekerjaan tertunda berikutnya untuk suatu hal. Status eksekusi pekerjaan harus `QUEUED` atau`IN_PROGRESS`.

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

Permintaan:

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

Respons:

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

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

**Sinopsis:**

```
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]
```

 `cli-input-json`format:

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

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

Memperbarui status eksekusi pekerjaan. Secara opsional, Anda dapat membuat pengatur waktu langkah dengan menetapkan nilai untuk `stepTimeoutInMinutes` properti. Jika Anda tidak memperbarui nilai properti ini dengan menjalankan `UpdateJobExecution` lagi, eksekusi pekerjaan akan habis saat pengatur waktu langkah kedaluwarsa.

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

Permintaan:

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

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

**Sinopsis:**

```
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]
```

 `cli-input-json`format:

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

Lihat informasi yang lebih lengkap di [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).

------