View a markdown version of this page

Mengelola tugas - AWS IoT Core

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

Mengelola tugas

Gunakan pekerjaan untuk memberi tahu perangkat tentang pembaruan perangkat lunak atau firmware. Anda dapat menggunakan AWS IoT konsol,Manajemen pekerjaan dan kontrol operasi API, AWS Command Line Interface, atau AWS SDK untuk membuat dan mengelola pekerjaan.

Penandatanganan kode untuk pekerjaan

Saat mengirim kode ke perangkat, agar perangkat mendeteksi apakah kode telah dimodifikasi saat transit, sebaiknya Anda menandatangani file kode dengan menggunakan AWS CLI. Untuk petunjuk, lihat Membuat dan mengelola pekerjaan dengan menggunakan AWS CLI.

Untuk informasi selengkapnya, lihat Apa itu Penandatanganan Kode AWS IoT? .

Dokumen tugas

Sebelum Anda membuat pekerjaan, Anda harus membuat dokumen pekerjaan. Jika Anda menggunakan penandatanganan kode untuk AWS IoT, Anda harus mengunggah dokumen pekerjaan Anda ke bucket Amazon S3 berversi. Untuk informasi selengkapnya tentang membuat bucket Amazon S3 dan mengunggah file ke dalamnya, lihat Mem ulai dengan Amazon Simple Storage Service di Panduan Memulai Amazon S3.

Tip

Untuk contoh dokumen pekerjaan, lihat contoh jobs-agent.js di AWS IoT SDK untuk JavaScript.

URL yang ditandatangani sebelumnya

Dokumen pekerjaan Anda dapat berisi URL Amazon S3 yang telah ditandatangani sebelumnya yang mengarah ke file kode Anda (atau file lain). URL Amazon S3 yang telah ditandatangani sebelumnya hanya valid untuk waktu yang terbatas dan dihasilkan saat perangkat meminta dokumen pekerjaan. Karena URL yang ditandatangani sebelumnya 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:

  • bucketadalah bucket Amazon S3 yang berisi file kode.

  • code fileadalah kunci Amazon S3 dari file kode.

Saat perangkat meminta dokumen pekerjaan, AWS IoT menghasilkan URL yang telah ditandatangani sebelumnya dan mengganti URL placeholder dengan URL yang telah ditandatangani sebelumnya. Dokumen pekerjaan Anda kemudian dikirim ke perangkat.

Peran IAM untuk memberikan izin untuk mengunduh file dari S3

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

Anda dapat menentukan batas waktu opsional untuk URL yang telah ditandatangani sebelumnya. Untuk informasi selengkapnya, lihat CreateJob.

Pemberian Izin AWS IoT Izin pekerjaan untuk mengambil peran Anda
  1. Buka hub Per an di konsol IAM dan pilih peran Anda.

  2. Pada tab Relationship Trust, 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" } ] }
  3. Untuk melindungi dari masalah wakil yang membingungkan, tambahkan kunci konteks kondisi global aws:SourceArn dan aws:SourceAccount ke kebijakan.

    penting

    Anda aws:SourceArn harus mematuhi format:arn:aws:iot:region:account-id:*. Pastikan itu region cocok dengan Wil AWS IoT ayah Anda dan account-id cocok dengan ID akun pelanggan Anda. Untuk informasi lebih lanjut, lihat pencegahan wakil yang Cross-service bingung.

    { "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/*" } } } ] }
  4. 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 ditandatangani sebelumnya untuk unggah file

Jika perangkat Anda perlu mengunggah file ke bucket Amazon S3 selama penerapan pekerjaan, Anda dapat menyertakan placeholder URL yang telah ditandatangani 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 cadangan dalam key atribut di URL placeholder upload 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 diganti 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 ditandatangani sebelumnya untuk mengunggah file selama penerapan pekerjaan, lihat. Pesan Kesalahan Pemecahan Masalah Umum

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 ditandatangani sebelumnya ini akan dikonversi ke URL unggahan yang telah ditandatangani 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 masing-masing${thingName},${jobId}, dan. ${executionNumber}

URL yang telah ditandatangani sebelumnya menggunakan versi Amazon S3

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 Anda 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.

Jika file disimpan di Amazon S3 dan dokumen pekerjaan berisi placeholder URL yang telah ditandatangani sebelumnya, AWS IoT Jobs akan membuat URL yang telah ditandatangani sebelumnya di dokumen pekerjaan menggunakan bucket Amazon S3, kunci bucket, dan versi file yang disimpan di bucket Amazon S3. URL yang ditandatangani sebelumnya yang dihasilkan dalam dokumen pekerjaan akan menggantikan placeholder URL yang telah ditandatangani sebelumnya pada 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 dilakukan dan memberikan kemampuan untuk menargetkan file tertentu dalam penerapan pekerjaan di masa mendatang.

Lihat contoh berikut untuk tampilan sebelum dan selama URL yang telah ditandatangani sebelumnya Amazon S3 di dokumen pekerjaan Anda menggunakan: versionId

Amazon S3 Placeholder URL yang telah ditandatangani sebelumnya (Sebelum Penerapan Pekerjaan)

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

URL Tanda Tanda Tanda Amazon S3 (Selama Penerapan Pekerjaan)

//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%3Dversion1} //Path-style ${aws:iot:s3-presigned-url-v2:https://s3.us-west-2.amazonaws.com/sample-bucket-name/sample-code-file.png%3FversionId%3Dversion1}

Untuk informasi selengkapnya tentang URL objek bergaya jalur dan hosting virtual Amazon S3, lihat Virtual-hosted-style permintaan dan permintaan. Path-style

catatan

Jika Anda ingin menambahkan ke URL yang telah versionId ditandatangani sebelumnya Amazon S3, URL tersebut harus sesuai dengan dukungan pengkodean URL. AWS SDK for Java 2.x Untuk informasi selengkapnya, lihat Perubahan dalam penguraian URI Amazon S3 dari versi 1 ke versi 2.

Perbedaan versi placeholder URL yang telah ditandatangani sebelumnya Amazon S3

Daftar berikut menguraikan perbedaan antara placeholder URL yang telah ditandatangani sebelumnya Amazon S3 ${aws:iot:s3-presigned-url-v1 (versi 1) dan ${aws:iot:s3-presigned-url-v2 (versi 2):

  • Placeholder URL yang telah ditandatangani sebelumnya Amazon S3 ${aws:iot:s3-presigned-url-v1 tidak mendukung. version-id

  • Placeholder URL yang telah ditandatangani sebelumnya Amazon S3 ${aws:iot:s3-presigned-url-v1 menerima URL Amazon S3 sebagai tidak dikodekan. Placeholder URL Presigned Amazon S3 menghar ${aws:iot:s3-presigned-url-v2 uskan URL Amazon S3 dikodekan agar sesuai dengan standar Amazon S3 SDK.