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 antaraversion::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 diCreateJob
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 GetJobDocument
APIs, Anda dapat melihat API respons sebelum dan sesudah parameter substitusi dihapus. Lihat contoh berikut dengan DescribeJob
dan GetJobDocument
APIs:
-
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 seperti
CreatePackageVersion
,, atauGetPackageVersion
UpdatePackageVersion
,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 oleh
recipe
:{ "packageName": "
sample-package-name
", "versionName": "sample-package-version
", ... "recipe": "{...}" }catatan
File instruksi penerapan seperti yang diwakili oleh
recipe
dapat diperbarui ketika versi paket berada dalampublished
status status karena terpisah dari metadata versi paket. Itu menjadi abadi selama penyebaran pekerjaan.
Artifact
atribut 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:<
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.packageName
>:version:<versionName
>:artifact-location:s3-presigned-url
}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
dalamUpdatePackageVersion
API operasiCreatePackageVersion
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 statuspublished
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 dalamdraft
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 olehdestinationPackageVersions
for API dan CLI perintah danVersionARN
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 diCreateJobTemplate
API perintahCreateJob
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 UpdateThingShadow
APIoperasi. 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
$null
adalah 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"]