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 AWS Identity and Access Management (IAM) ini: Hak AWS IoT pekerjaan untuk menyebarkan 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 pengganti 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 URL Amazon Simple Storage Service (Amazon S3), paket perangkat lunak Nama Sumber Daya Amazon (ARN), atau tanda tangan ke dalam dokumen pekerjaan melalui atribut versi paket.

Parameter substitusi harus diformat dalam dokumen pekerjaan sebagai berikut:

${aws:iot:package:<packageName>:version:<versionName>:attributes:<anyAttributeName>}

Dalam contoh ini, ada paket perangkat lunak bernamasamplePackage,, 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.

Untukdownloads, 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" ] } }

Untuk informasi selengkapnya tentang AWS IoT Pekerjaan, 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.)

Bila Anda puas dengan versi paket, publikasikan melalui halaman detail paket perangkat lunak di AWS IoT konsol atau dengan mengeluarkan operasi UpdatePackageVersionAPI. Anda kemudian dapat mereferensikan versi paket saat membuat pekerjaan baik melalui AWS IoT konsol atau dengan mengeluarkan operasi CreateJobAPI.

Menamai paket dan versi saat menerapkan

Saat Anda menerapkan AWS IoT pekerjaan, Anda harus memberi nama paket perangkat lunak dan versi paket yang sama yang diberi nama dalam dokumen pekerjaan di job deployment ()destinationPackageVersions. Jika tidak, Anda akan menerima pesan galat yang menyatakan versi paket yang hilang.

Anda dapat menyertakan paket perangkat lunak tambahan dan versi paket yang tidak disertakan dalam dokumen pekerjaan. Jika Anda melakukan ini, pekerjaan tidak memberikan instruksi kepada perangkat tentang apa yang harus dilakukan dengan file-file tersebut dan perangkat diharapkan tahu apa yang harus dilakukan. Misalnya, Anda dapat mengirim file tambahan ke perangkat jika berisi data yang mungkin direferensikan perangkat.

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, panggilan API 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 operasi UpdateThingShadowAPI. 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.

ARN resmi 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"]