Mempersiapkan AWS IoT Pekerjaan - AWS IoT Core

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

Mempersiapkan AWS IoT Pekerjaan

AWS IoT Device Management Software Package Catalog memperluas AWS IoT Jobs melalui parameter substitusi, dan integrasi dengan pengindeksan AWS IoT armada, grup benda dinamis, dan AWS IoT benda yang dicadangkan bernama shadow.

catatan

Untuk menggunakan semua fungsionalitas yang ditawarkan Katalog Paket Perangkat Lunak, Anda harus membuat peran dan kebijakan ini AWS Identity and Access Management (IAM): Hak AWS IoT pekerjaan untuk menerapkan versi paket dan hak AWS IoT Pekerjaan untuk memperbarui bayangan bernama yang dilindungi undang-undang. Untuk informasi selengkapnya, lihat Mempersiapkan keamanan.

Parameter substitusi untuk pekerjaan AWS IoT

Anda dapat menggunakan parameter substitusi sebagai placeholder dalam dokumen pekerjaan Anda AWS IoT . Ketika layanan pekerjaan menemukan parameter substitusi, itu mengarahkan pekerjaan ke atribut versi perangkat lunak bernama untuk nilai parameter. Anda dapat menggunakan proses ini untuk membuat dokumen pekerjaan tunggal dan meneruskan metadata ke dalam pekerjaan melalui atribut tujuan umum. Misalnya, Anda dapat meneruskan Amazon Simple Storage Service (Amazon S3)URL, paket perangkat lunak Amazon Resource Name (ARN), atau tanda tangan ke dalam dokumen pekerjaan melalui atribut versi paket.

Parameter substitusi harus diformat dalam dokumen pekerjaan sebagai berikut:

  • Nama Paket Perangkat Lunak dan Versi Package

    • String kosong antara package::version mewakili parameter substitusi nama paket perangkat lunak. String kosong antara version::attribute mewakili parameter substitusi versi paket perangkat lunak. Lihat contoh berikut untuk menggunakan nama paket dan parameter substitusi verion paket dalam dokumen pekerjaan:. ${aws:iot:package::version::attributes:<attributekey>}

    • Dokumen pekerjaan akan mengisi otomatis parameter substitusi ini menggunakan Versi ARN dari detail versi paket. Jika Anda membuat templat pekerjaan atau pekerjaan untuk penerapan paket tunggal menggunakan CLI perintah API or, Versi ARN untuk versi paket diwakili oleh destinationPackageVersions parameter di CreateJob dan. DescribeJob

  • Semua Atribut untuk Versi Paket Perangkat Lunak

    • Lihat contoh berikut untuk menggunakan semua atribut parameter substitusi versi paket perangkat lunak dalam dokumen pekerjaan: ${aws:iot:package:<packageName>:version:<versionName>:attributes}

catatan

Nama paket, versi paket, dan semua parameter substitusi atribut dapat digunakan bersama-sama. Lihat contoh berikut untuk menggunakan ketiga parameter substitusi dalam dokumen pekerjaan: ${aws:iot:package::version::attributes}

Dalam contoh berikut, ada paket perangkat lunak bernama samplePackage dan memiliki versi paket bernama 2.1.5 yang memiliki atribut berikut:

  • nama:s3URL, nilai: https://EXAMPIEBUCKET.s3.us-west-2.amazonaws.com/exampleCodeFile

    • Atribut ini mengidentifikasi lokasi file kode yang disimpan dalam Amazon S3.

  • nama:signature, nilai: aaaaabbbbbcccccdddddeeeeefffffggggghhhhhiiiiijjjj

    • Atribut ini memberikan nilai tanda tangan kode yang dibutuhkan perangkat sebagai tindakan pengamanan. Untuk informasi selengkapnya, lihat Penandatanganan Kode untuk lowongan kerja. Catatan: Atribut ini adalah contoh dan tidak diperlukan sebagai bagian dari Katalog Paket Perangkat Lunak atau pekerjaan.

Untuks3URL, parameter dokumen pekerjaan ditulis sebagai berikut:

{ "samplePackage": "${aws:iot:package:samplePackage1:version:2.1.5:attributes:s3URL}" }

Untuksignature, parameter dokumen pekerjaan ditulis sebagai berikut:

{ "samplePackage": "${aws:iot:package:samplePackage1:version:2.1.5:attributes:signature}" }

Dokumen pekerjaan lengkap ditulis sebagai berikut:

{ ... "Steps": { "uninstall": ["samplePackage"], "download": [ { "samplePackage": "${aws:iot:package:samplePackage1:version:2.1.5:attributes:s3URL}" }, ], "signature": [ "samplePackage" : "${aws:iot:package:samplePackage1:version:2.1.5:attributes:signature}" ] } }

Setelah substitusi dilakukan, dokumen pekerjaan berikut dikerahkan ke perangkat:

{ ... "Steps": { "uninstall": ["samplePackage"], "download": [ { "samplePackage": "https://EXAMPIEBUCKET.s3.us-west-2.amazonaws.com/exampleCodeFile" }, ], "signature": [ "samplePackage" : "aaaaabbbbbcccccdddddeeeeefffffggggghhhhhiiiiijjjj" ] } }

Parameter Substitusi (Sebelum dan Sesudah Tampilan)

Parameter substitusi merampingkan pembuatan dokumen pekerjaan menggunakan berbagai flag seperti $default untuk versi paket default. Ini menghilangkan kebutuhan untuk memasukkan metadata versi paket tertentu secara manual untuk setiap penerapan pekerjaan karena flag tersebut diisi otomatis dengan metadata yang direferensikan dalam versi paket tertentu. Untuk informasi selengkapnya tentang atribut versi paket seperti $default untuk versi paket default, lihatMempersiapkan dokumen pekerjaan dan versi paket untuk penyebaran.

Di AWS Management Console, alihkan tombol substitusi Pratinjau di jendela editor file instruksi Deployment selama penerapan pekerjaan untuk versi paket untuk melihat dokumen pekerjaan dengan dan tanpa parameter substitusi.

Menggunakan parameter “sebelum-substitusi” di DescribeJob dan GetJobDocumentAPIs, Anda dapat melihat API respons sebelum dan sesudah parameter substitusi dihapus. Lihat contoh berikut dengan DescribeJob dan GetJobDocumentAPIs:

  • DescribeJob

    • Tampilan default

      { "jobId": "<jobId>", "description": "<description>", "destinationPackageVersions": ["arn:aws:iot:us-west-2:123456789012:package/TestPackage/version/1.0.2"] }
    • Sebelum tampilan substitusi

      { "jobId": "<jobId>", "description": "<description>", "destinationPackageVersions": ["arn:aws:iot:us-west-2:123456789012:package/TestPackage/version/$default"] }
  • GetJobDocument

    • Tampilan default

      { "attributes": { "location": "prod-artifacts.s3.us-east-1.amazonaws.com/mqtt-core", "signature": "IQoJb3JpZ2luX2VjEIrwEaCXVzLWVhc3QtMSJHMEUCIAofPNPpZ9cI", "streamName": "mqtt-core", "fileId": "0" }, }
    • Sebelum tampilan substitusi

      { "attributes": "${aws:iot:package:TestPackage:version:$default:attributes}", }

Untuk informasi selengkapnya tentang AWS IoT Lowongan Kerja, membuat dokumen pekerjaan, dan menerapkan pekerjaan, lihat Pekerjaan.

Mempersiapkan dokumen pekerjaan dan versi paket untuk penyebaran

Ketika versi paket dibuat, itu dalam draft keadaan untuk menunjukkan bahwa itu sedang dipersiapkan untuk penerapan. Untuk menyiapkan versi paket untuk penyebaran, Anda harus membuat dokumen pekerjaan, menyimpan dokumen di lokasi yang dapat diakses oleh pekerjaan (seperti Amazon S3), dan mengonfirmasi bahwa versi paket memiliki nilai atribut yang Anda inginkan untuk digunakan oleh dokumen pekerjaan. (Catatan: Anda dapat memperbarui atribut untuk versi paket hanya saat berada dalam draft status.)

Saat membuat template AWS IoT Job atau Job untuk penerapan paket tunggal, Anda memiliki opsi berikut untuk menyesuaikan dokumen pekerjaan Anda:

File instruksi penyebaran () recipe

  • File instruksi penerapan untuk versi paket berisi instruksi penerapan, termasuk dokumen pekerjaan inline, untuk menerapkan versi paket ke beberapa perangkat. File tersebut mengaitkan instruksi penerapan spesifik ke versi paket untuk penerapan pekerjaan yang cepat dan efisien.

    Di dalam AWS Management Console, Anda dapat membuat file di jendela pratinjau file petunjuk Deployment di tab Konfigurasi penerapan versi dari alur kerja buat paket baru. Anda dapat memanfaatkan AWS IoT untuk secara otomatis membuat file instruksi dari atribut versi paket menggunakan Mulai dari file yang AWS IoT direkomendasikan atau menggunakan dokumen pekerjaan yang ada yang disimpan dalam bucket Amazon S3 menggunakan file instruksi penggunaan Anda sendiri.

    catatan

    Jika Anda menggunakan dokumen pekerjaan Anda sendiri, Anda dapat memperbaruinya langsung di jendela pratinjau file petunjuk Deployment, tetapi itu tidak akan secara otomatis memperbarui dokumen pekerjaan asli Anda yang disimpan di bucket Amazon S3 Anda.

    Saat menggunakan AWS CLI atau API perintah sepertiCreatePackageVersion,, atau GetPackageVersionUpdatePackageVersion, recipe mewakili file instruksi penyebaran, yang mencakup dokumen pekerjaan inline.

    Untuk informasi lebih lanjut tentang apa itu dokumen pekerjaan, lihatKonsep dasar.

    Lihat contoh berikut untuk file instruksi penyebaran seperti yang diwakili olehrecipe:

    { "packageName": "sample-package-name", "versionName": "sample-package-version", ... "recipe": "{...}" }
    catatan

    File instruksi penerapan seperti yang diwakili oleh recipe dapat diperbarui ketika versi paket berada dalam published status status karena terpisah dari metadata versi paket. Itu menjadi abadi selama penyebaran pekerjaan.

Artifactatribut versi

  • Menggunakan atribut versi artifact dalam versi paket perangkat lunak Anda, Anda dapat menambahkan lokasi Amazon S3 untuk artefak versi paket Anda. Saat penerapan pekerjaan untuk versi paket Anda dipicu menggunakan AWS IoT Jobs, URL placeholder yang telah ditetapkan sebelumnya ${aws:iot:package:<packageName>:version:<versionName>:artifact-location:s3-presigned-url} dalam dokumen pekerjaan akan diperbarui menggunakan bucket Amazon S3, kunci bucket, dan versi file yang disimpan di bucket Amazon S3. Bucket Amazon S3 yang menyimpan artefak versi paket harus berada di wilayah yang sama tempat versi paket dibuat.

    catatan

    Untuk menyimpan beberapa versi objek dari file yang sama di bucket Amazon S3, Anda harus mengaktifkan pembuatan versi di bucket. Untuk informasi selengkapnya, lihat Mengaktifkan pembuatan versi pada bucket.

    Untuk mengakses artefak versi paket di bucket Amazon S3 saat menggunakan CreatePackageVersion UpdatePackageVersion API atau operasi, Anda harus memiliki izin berikut:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObjectVersion", "Resource": "arn:<partition>:s3:::<bucket>/<key>" } ] }

    Untuk informasi selengkapnya tentang atribut versi artifact dalam UpdatePackageVersion API operasi CreatePackageVersion dan, lihat CreatePackageVersiondan UpdatePackageVersion.

    Lihat contoh berikut yang menunjukkan atribut version yang artifact mendukung lokasi artefak di Amazon S3 saat membuat versi paket baru:

    { "packageName": "sample package name", "versionName": "1.0", "artifact": { "s3Location": { "bucket": "firmware", "key": "image.bin", "version": "12345" } } }
    catatan

    Ketika versi paket diperbarui dari draft status status ke status published status, atribut versi paket dan lokasi artificats menjadi tidak dapat diubah. Untuk memperbarui informasi ini, Anda perlu membuat versi paket baru dan melakukan pembaruan tersebut saat berada dalam draft status status.

Versi Package

  • Versi paket perangkat lunak default dapat dilambangkan dalam versi yang tersedia dari paket perangkat lunak yang menyediakan versi paket yang aman dan stabil. Ini berfungsi sebagai versi dasar dari paket perangkat lunak saat menerapkan versi paket default ke armada perangkat Anda menggunakan Jobs. AWS IoT Saat membuat pekerjaan untuk menyebarkan versi $default paket untuk paket perangkat lunak, versi paket dalam dokumen pekerjaan dan dalam penerapan pekerjaan baru harus cocok sebagai. $default Versi paket dalam penerapan pekerjaan diwakili oleh destinationPackageVersions for API dan CLI perintah dan VersionARN di file. AWS Management Console Versi paket dalam dokumen pekerjaan diwakili oleh placeholder dokumen pekerjaan berikut yang ditunjukkan di bawah ini:

    arn:aws:iot:<regionCode>:111122223333:package/<packageName>/version/$default

    Untuk membuat template pekerjaan atau pekerjaan menggunakan versi paket default, gunakan $default bendera di CreateJobTemplate API perintah CreateJob or seperti yang ditunjukkan di bawah ini:

    "$ aws iot create-job \ --destination-package-versions "arn:aws:iot:us-west-2:123456789012:package/TestPackage/version/$default" --document file://jobdoc.json
    catatan

    Atribut versi $default paket yang mereferensikan versi default adalah atribut opsional yang hanya diperlukan saat mereferensikan versi paket default untuk penerapan pekerjaan melalui Jobs. AWS IoT

Ketika Anda puas dengan versi paket, publikasikan baik melalui halaman detail paket perangkat lunak di AWS IoT konsol atau dengan mengeluarkan UpdatePackageVersionAPIoperasi. Anda kemudian dapat mereferensikan versi paket saat Anda membuat pekerjaan baik melalui AWS IoT konsol atau dengan mengeluarkan CreateJobAPIoperasi.

Menamai paket dan versi saat menerapkan

Untuk menyebarkan versi paket perangkat lunak ke perangkat, konfirmasikan paket perangkat lunak dan versi paket yang direferensikan dalam dokumen pekerjaan cocok dengan paket perangkat lunak dan versi paket yang dinyatakan dalam destinationPackageVersions parameter dalam operasi. CreateJob API Jika tidak cocok, Anda akan menerima pesan kesalahan yang meminta Anda untuk membuat kedua referensi cocok. Untuk informasi selengkapnya tentang pesan galat Katalog Paket Perangkat Lunak, lihatPesan Kesalahan Pemecahan Masalah Umum.

Selain paket perangkat lunak dan versi paket yang direferensikan dalam dokumen pekerjaan, Anda dapat menyertakan paket perangkat lunak tambahan dan versi paket dalam destinationPackageVersions parameter dalam CreateJob API operasi yang tidak direferensikan dalam dokumen pekerjaan. Pastikan informasi instalasi yang diperlukan disertakan dalam dokumen pekerjaan agar perangkat dapat menginstal versi paket perangkat lunak tambahan dengan benar. Untuk informasi lebih lanjut tentang CreateJob API operasi, lihat CreateJob.

Menargetkan pekerjaan melalui kelompok hal yang AWS IoT dinamis

Software Package Catalog bekerja dengan pengindeksan armada, AWS IoT pekerjaan, dan grup benda AWS IoT dinamis untuk memfilter dan menargetkan perangkat dalam armada Anda untuk memilih versi paket mana yang akan diterapkan ke perangkat Anda. Anda dapat menjalankan kueri pengindeksan armada berdasarkan informasi paket perangkat Anda saat ini dan menargetkan hal-hal tersebut untuk suatu AWS IoT pekerjaan. Anda juga dapat merilis pembaruan perangkat lunak, tetapi hanya untuk perangkat target yang memenuhi syarat. Misalnya, Anda dapat menentukan bahwa Anda ingin menerapkan konfigurasi hanya ke perangkat yang saat ini menjalankan konfigurasi. iot-device-client 1.5.09 Untuk informasi selengkapnya, lihat Membuat grup benda dinamis.

Versi bayangan dan paket bernama yang dicadangkan

Jika dikonfigurasi, AWS IoT Jobs dapat memperbarui sesuatu yang dicadangkan bernama shadow ($package) ketika pekerjaan berhasil diselesaikan. Jika Anda melakukannya, Anda tidak perlu mengaitkan versi paket secara manual ke bayangan bernama yang dicadangkan.

Anda dapat memilih untuk mengaitkan atau memperbarui versi paket secara manual ke bayangan bernama yang dicadangkan dalam situasi berikut:

  • Anda mendaftarkan sesuatu AWS IoT Core tanpa mengaitkan versi paket yang diinstal.

  • AWS IoT Pekerjaan tidak dikonfigurasi untuk memperbarui bayangan bernama yang dicadangkan.

  • Anda menggunakan proses internal untuk mengirimkan versi paket ke armada Anda dan proses itu tidak diperbarui AWS IoT Core saat selesai.

catatan

Kami menyarankan Anda menggunakan AWS IoT Jobs untuk memperbarui versi paket di shadow ($package) bernama reserved. Memperbarui parameter versi dalam $package bayangan melalui proses lain (seperti, API panggilan manual atau terprogram) ketika AWS IoT Jobs juga dikonfigurasi untuk memperbarui bayangan, dapat menyebabkan ketidakkonsistenan antara versi aktual pada perangkat dan versi yang dilaporkan ke bayangan bernama yang dicadangkan.

Anda dapat menambahkan atau memperbarui versi paket ke sesuatu yang dicadangkan bernama shadow ($package) melalui konsol atau UpdateThingShadowAPIoperasi. Untuk informasi selengkapnya, lihat Mengaitkan versi paket ke AWS IoT sesuatu.

catatan

Mengaitkan versi paket ke AWS IoT sesuatu tidak secara langsung memperbarui perangkat lunak perangkat. Anda harus menyebarkan versi paket ke perangkat untuk memperbarui perangkat lunak perangkat.

Menghapus instalasi paket perangkat lunak dan versi paketnya

$nulladalah placeholder cadangan yang meminta layanan AWS IoT Jobs untuk menghapus paket perangkat lunak dan versi paket yang ada dari bayangan bernama cadangan perangkat. $package Untuk informasi selengkapnya, lihat Cadangan bernama bayangan.

Untuk menggunakan fitur ini, ganti nama versi di akhir destinationPackageVersionAmazon Resource Name (ARN) dengan$null. Setelah itu, Anda harus menginstruksikan layanan Anda untuk menghapus perangkat lunak dari perangkat.

Yang berwenang ARN menggunakan format berikut:

arn:aws:iot:<regionCode>:111122223333:package/<packageName>/version/$null

Misalnya,

$ aws iot create-job \ ... \ --destinationPackageVersions ["arn:aws:iot:us-east-1:111122223333:package/samplePackage/version/$null"]