

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

# Mengelola tugas
<a name="create-manage-jobs"></a>

Gunakan pekerjaan untuk memberi tahu perangkat tentang pembaruan perangkat lunak atau firmware. Anda dapat menggunakan [AWS IoT konsol](https://console.aws.amazon.com/iot/), [Manajemen pekerjaan dan pengendalian operasi API](jobs-management-control-api.md#jobs-http-api) [AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/reference/iot/index.html), atau [AWS SDKs](https://aws.amazon.com/tools/#sdk)untuk membuat dan mengelola pekerjaan.

## Penandatanganan kode untuk pekerjaan
<a name="create-manage-jobs-code-signing"></a>

 Saat mengirim kode ke perangkat, agar perangkat dapat mendeteksi apakah kode telah dimodifikasi saat transit, kami sarankan Anda menandatangani file kode dengan menggunakan kode AWS CLI. Untuk petunjuk, lihat [Membuat dan mengelola lowongan dengan menggunakan AWS CLI](manage-job-cli.md).

Untuk informasi selengkapnya, lihat [Untuk apa Penandatanganan Kode AWS IoT?](https://docs.aws.amazon.com/signer/latest/developerguide/Welcome.html) .

## Dokumen tugas
<a name="create-manage-jobs-job-doc"></a>

Sebelum Anda membuat pekerjaan, Anda harus membuat dokumen pekerjaan. Jika menggunakan penandatanganan kode AWS IoT, Anda harus mengunggah dokumen pekerjaan ke bucket Amazon S3 berversi. Untuk informasi selengkapnya tentang membuat bucket Amazon S3 dan mengunggah file ke dalamnya, lihat [Memulai Layanan Penyimpanan Sederhana Amazon](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html) di Panduan Memulai *Amazon S3*.

**Tip**  
Untuk contoh dokumen pekerjaan, lihat contoh [jobs-agent.js](https://www.npmjs.com/package/aws-iot-device-sdk#jobs-agentjs) di AWS IoT SDK untuk JavaScript.

## Ditandatangani URLs
<a name="create-manage-jobs-presigned-URLs"></a>

Dokumen pekerjaan Anda dapat berisi URL Amazon S3 yang telah ditetapkan sebelumnya yang mengarah ke file kode Anda (atau file lain). Amazon URLs S3 yang telah ditetapkan sebelumnya hanya berlaku untuk jangka waktu terbatas dan dihasilkan saat perangkat meminta dokumen pekerjaan. Karena URL presigned tidak dibuat saat Anda membuat dokumen pekerjaan, gunakan URL placeholder di dokumen pekerjaan Anda sebagai gantinya. URL placeholder terlihat seperti berikut:

`${aws:iot:s3-presigned-url-v2:https://s3.region.amazonaws.com/{{<bucket>}}/{{<code file>}}}`

di mana:
+ {{bucket}}adalah bucket Amazon S3 yang berisi file kode.
+ {{code file}}adalah kunci Amazon S3 dari file kode.

Saat perangkat meminta dokumen pekerjaan, AWS IoT buat URL yang telah ditetapkan sebelumnya dan ganti URL placeholder dengan URL yang telah ditetapkan sebelumnya. Dokumen pekerjaan Anda kemudian dikirim ke perangkat.

**Peran IAM untuk memberikan izin untuk mengunduh file dari S3**  
Saat Anda membuat pekerjaan yang menggunakan Amazon URLs S3 yang telah ditetapkan sebelumnya, Anda harus memberikan peran IAM. Peran harus memberikan izin untuk mengunduh file dari bucket Amazon S3 tempat data atau pembaruan disimpan. Peran tersebut juga harus memberikan izin AWS IoT untuk mengambil peran tersebut.

Anda dapat menentukan batas waktu opsional untuk URL yang telah ditetapkan sebelumnya. Untuk informasi selengkapnya, lihat [CreateJob](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html).

**Berikan izin kepada AWS IoT Jobs untuk mengambil peran Anda**

1. Buka [hub Peran konsol IAM](https://console.aws.amazon.com/iamv2/home#/roles) dan pilih peran Anda.

1. Pada tab **Trust Relationships**, pilih **Edit Trust Relationship** dan ganti dokumen kebijakan dengan JSON berikut. Pilih **Perbarui Kebijakan Kepercayaan**.  
****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": [
             "iot.amazonaws.com"
           ]
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

1. Untuk melindungi dari masalah wakil yang membingungkan, tambahkan kunci konteks kondisi global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)dan [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)ke kebijakan.
**penting**  
Anda `aws:SourceArn` harus mematuhi format:`arn:aws:iot:{{region}}:{{account-id}}:*`. Pastikan itu {{region}} cocok dengan AWS IoT Wilayah Anda dan {{account-id}} cocok dengan ID akun pelanggan Anda. Untuk informasi lebih lanjut, lihat [Pencegahan Deputi Bingung Lintas Layanan](cross-service-confused-deputy-prevention.md). 

   ```
   {
     "Effect": "Allow",
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": 
             "iot.amazonaws.com"        
          },
         "Action": "sts:AssumeRole",
         "Condition": {
            "StringEquals": {
               "aws:SourceAccount": "123456789012"
            },
            "ArnLike": {
                 "aws:SourceArn": "arn:aws:iot:*:123456789012:job/*"
            }
          }
        }
      ]
   }
   ```

1. Jika pekerjaan Anda menggunakan dokumen pekerjaan yang merupakan objek Amazon S3, pilih **Izin** dan gunakan JSON berikut. Ini menambahkan kebijakan yang memberikan izin untuk mengunduh file dari bucket Amazon S3 Anda:  
****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "s3:GetObject",
               "Resource": "arn:aws:s3:::{{your_S3_bucket}}/*"
           }
       ]
   }
   ```

## URL yang telah ditetapkan sebelumnya untuk mengunggah file
<a name="create-manage-jobs-presigned-URLs-upload"></a>

Jika perangkat Anda perlu mengunggah file ke bucket Amazon S3 selama penerapan pekerjaan, Anda dapat menyertakan placeholder URL yang telah ditetapkan sebelumnya di dokumen pekerjaan Anda: 

```
${aws:iot:s3-presigned-url-upload:https://s3.region.amazonaws.com/{{<bucket>}}/{{<key>}}} 
```

Anda dapat menggunakan maksimal dua dari masing-masing`${thingName}`,`${jobId}`, dan `${executionNumber}` sebagai kata kunci yang dicadangkan dalam `key` atribut di URL placeholder unggahan file yang terletak di dokumen pekerjaan Anda. Placeholder lokal yang mewakili kata kunci yang dicadangkan dalam `key` atribut akan diurai dan diganti saat eksekusi pekerjaan dibuat. Menggunakan placeholder lokal dengan kata kunci cadangan khusus untuk setiap perangkat memastikan setiap file yang diunggah dari perangkat khusus untuk perangkat tersebut dan tidak ditimpa oleh file yang diunggah serupa dari perangkat lain yang ditargetkan oleh penerapan pekerjaan yang sama. Untuk informasi tentang pemecahan masalah placeholder lokal dalam placeholder URL yang telah ditetapkan sebelumnya untuk mengunggah file selama penerapan pekerjaan, lihat. [Pesan Kesalahan Pemecahan Masalah Umum](software-package-catalog-troubleshooting.md#spc-general-troubleshooting)

**catatan**  
Nama bucket Amazon S3 tidak dapat berisi placeholder lokal yang mewakili kata kunci yang dicadangkan untuk file yang diunggah. Placeholder lokal harus terletak di atribut. `key`

Placeholder URL yang telah ditetapkan sebelumnya ini akan dikonversi ke URL unggahan yang telah ditetapkan sebelumnya Amazon S3 di dokumen pekerjaan Anda saat perangkat menerimanya. Perangkat Anda akan menggunakan ini untuk mengunggah file ke bucket Amazon S3 tujuan.

**catatan**  
Jika bucket dan kunci Amazon S3 tidak disediakan di URL placeholder di atas, AWS IoT Jobs akan secara otomatis menghasilkan kunci untuk setiap perangkat menggunakan maksimal dua dari `${thingName}` masing-masing,, dan. `${jobId}` `${executionNumber}`

## URL yang telah ditetapkan sebelumnya menggunakan versi Amazon S3
<a name="create-manage-jobs-presigned-URLs-versioning"></a>

Menjaga integritas file yang disimpan dalam bucket Amazon S3 sangat penting untuk memastikan penerapan pekerjaan yang aman menggunakan file tersebut ke armada perangkat Anda. Dengan menggunakan versi Amazon S3, Anda dapat menambahkan pengenal versi untuk setiap varian file yang disimpan di bucket Amazon S3 untuk melacak setiap versi file. Ini memberikan wawasan tentang versi file apa yang digunakan ke armada perangkat Anda menggunakan AWS IoT Jobs. Untuk informasi selengkapnya tentang bucket Amazon S3 menggunakan pembuatan versi, lihat Menggunakan pembuatan versi di bucket Amazon [S3.](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html)

Jika file disimpan di Amazon S3 dan dokumen pekerjaan berisi placeholder URL yang telah ditetapkan sebelumnya, AWS IoT Jobs akan menghasilkan URL yang telah ditetapkan sebelumnya dalam dokumen pekerjaan menggunakan bucket Amazon S3, kunci bucket, dan versi file yang disimpan di bucket Amazon S3. URL presigned yang dihasilkan dalam dokumen pekerjaan ini akan menggantikan placeholder URL presigned awalnya dalam dokumen pekerjaan. Jika Anda memperbarui file yang disimpan di bucket Amazon S3 Anda, versi baru file dan selanjutnya `versionId` akan dibuat untuk memberi sinyal pembaruan yang dibuat dan memberikan kemampuan untuk menargetkan file tertentu dalam penerapan pekerjaan di masa mendatang.

Lihat contoh berikut untuk tampilan Amazon S3 sebelum dan selama yang ditetapkan URLs dalam dokumen pekerjaan Anda menggunakan: `versionId`

**Placeholder URL Presigned Amazon S3 (Sebelum Penerapan Job)**

```
//Virtual-hosted style URL
${aws:iot:s3-presigned-url-v2:https://{{bucket-name}}.s3.{{region-code}}.amazonaws.com/{{key-name}}%3FversionId%3D{{version-id}}}

//Path-style URL
${aws:iot:s3-presigned-url-v2:https://s3.{{region-code}}.amazonaws.com/{{bucket-name}}/{{key-name}}%3FversionId%3D{{version-id}}}
```

**URL Presigned Amazon S3 (Selama Penerapan Job)**

```
//Virtual-hosted style URL
${aws:iot:s3-presigned-url-v2:https://{{sample-bucket-name}}.s3.{{us-west-2}}.amazonaws.com/{{sample-code-file.png}}%3FversionId%3D{{version1}}}

//Path-style
${aws:iot:s3-presigned-url-v2:https://s3.{{us-west-2}}.amazonaws.com/{{sample-bucket-name}}/{{sample-code-file.png}}%3FversionId%3D{{version1}}}
```

[https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#virtual-hosted-style-access](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#virtual-hosted-style-access)

**catatan**  
Jika Anda ingin menambahkan `versionId` ke URL presigned Amazon S3, itu harus sesuai dengan dukungan pengkodean URL. AWS SDK for Java 2.x Untuk informasi selengkapnya, lihat [Perubahan dalam mengurai Amazon URIs S3 dari versi 1 ke versi 2](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/migration-s3-uri-parser.html#migration-3-uri-parser-api-changes).

**Perbedaan versi placeholder URL Presigned Amazon S3**

Daftar berikut menguraikan perbedaan antara `${aws:iot:s3-presigned-url-v1` placeholder URL presigned Amazon S3 (versi 1) dan (versi 2)`${aws:iot:s3-presigned-url-v2`:
+  `${aws:iot:s3-presigned-url-v1`Placeholder URL presigned Amazon S3 tidak mendukung. `version-id`
+ Placeholder URL presigned Amazon S3 menerima URL `${aws:iot:s3-presigned-url-v1` Amazon S3 sebagai tidak dikodekan. Placeholder URL Presigned Amazon S3 mengharuskan URL `${aws:iot:s3-presigned-url-v2` Amazon S3 dikodekan agar sesuai dengan standar SDK Amazon S3.

**Topics**
+ [Penandatanganan kode untuk pekerjaan](#create-manage-jobs-code-signing)
+ [Dokumen tugas](#create-manage-jobs-job-doc)
+ [Ditandatangani URLs](#create-manage-jobs-presigned-URLs)
+ [URL yang telah ditetapkan sebelumnya untuk mengunggah file](#create-manage-jobs-presigned-URLs-upload)
+ [URL yang telah ditetapkan sebelumnya menggunakan versi Amazon S3](#create-manage-jobs-presigned-URLs-versioning)
+ [Membuat dan mengelola pekerjaan dengan menggunakan Konsol Manajemen AWS](manage-job-console.md)
+ [Membuat dan mengelola pekerjaan dengan menggunakan AWS CLI](manage-job-cli.md)