View a markdown version of this page

Mempersiapkan AWS IoT Lowongan Kerja - 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 Lowongan Kerja

AWS IoT Device Management Katalog Paket Perangkat Lunak memperluas AWS IoT Pekerjaan 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 menerapkan versi paket dan hak AWS IoT Jobs untuk memperbarui bayangan bernama yang dicadangkan. Untuk informasi selengkapnya, lihat Mempersiapkan keamanan.

Parameter substitusi untuk AWS IoT pekerjaan

Anda dapat menggunakan parameter substitusi sebagai placeholder dalam dokumen AWS IoT pekerjaan Anda. 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 pekerjaan melalui atribut tujuan umum. Misalnya, Anda dapat meneruskan URL Amazon Simple Storage Service (Amazon S3), paket perangkat lunak Amazon Resource Name (ARN), atau tanda tangan ke dokumen pekerjaan melalui atribut versi paket.

Parameter substitusi harus diformat dalam dokumen pekerjaan sebagai berikut:

  • Nama Paket Perangkat Lunak dan Versi Paket

    • String kosong di antara package::version mewakili parameter substitusi nama paket perangkat lunak. String kosong di 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 template pekerjaan atau pekerjaan untuk penerapan paket tunggal menggunakan perintah API atau CLI, 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. 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 diperlukan perangkat sebagai tindakan keamanan. Untuk informasi selengkapnya, lihat Penandatanganan Kode untuk pekerjaan. 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 digunakan 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 secara otomatis dengan metadata yang direferensikan dalam versi paket tertentu. Untuk informasi selengkapnya tentang atribut versi paket seperti $default untuk versi paket default, lihatMempersiapkan dokumen tugas dan versi paket untuk deployment.

Di dalam Konsol Manajemen AWS, alihkan tombol Preview substitusi 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 API, Anda dapat melihat respons API sebelum dan sesudah parameter substitusi dihapus. Lihat contoh berikut dengan GetJobDocument API DescribeJob dan:

  • 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 Pekerjaan, membuat dokumen pekerjaan, dan menyebarkan pekerjaan, lihat Pekerjaan.

Mempersiapkan dokumen tugas dan versi paket untuk deployment

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

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

File instruksi penerapan (recipe)

  • File instruksi penerapan untuk versi paket berisi instruksi penerapan, termasuk dokumen pekerjaan sebaris, untuk menyebarkan versi paket ke beberapa perangkat. File mengaitkan instruksi penerapan tertentu ke versi paket untuk penerapan pekerjaan yang cepat dan efisien.

    Di dalamnya Konsol Manajemen AWS, Anda dapat membuat file di jendela pratinjau file instruksi penerapan di tab Konfigur asi penerapan versi alur kerja buat paket baru. Anda dapat memanfaatkan AWS IoT untuk membuat file instruksi secara otomatis 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 Gunakan file instruksi penerapan Anda sendiri.

    catatan

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

    Saat menggunakan perintah AWS CLI atau API sepertiCreatePackageVersion,, atau GetPackageVersionUpdatePackageVersion, recipe mewakili file instruksi penerapan, yang menyertakan dokumen pekerjaan sebaris.

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

    Lihat contoh berikut untuk file instruksi penerapan 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 karena terpisah dari metadata versi paket. Itu menjadi tidak berubah selama penerapan pekerjaan.

Artifactatribut versi

  • Menggunakan atribut version 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, placeholder URL yang telah ditandatangani 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, Anda harus mengaktifkan pembuatan versi di bucket Anda. Untuk informasi selengkapnya, lihat Mengaktifkan pembuatan versi pada bucket.

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

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

    Untuk informasi selengkapnya tentang atribut version artifact dalam operasi CreatePackageVersion dan UpdatePackageVersion API, lihat CreatePackageVersion dan 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 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 dalam draft status status.

Versi Paket

  • Versi paket perangkat lunak default dapat dilambangkan dalam versi paket perangkat lunak yang tersedia menyediakan versi paket yang aman dan stabil. Ini berfungsi sebagai versi dasar paket perangkat lunak saat menerapkan versi paket default ke armada perangkat Anda menggunakan AWS IoT Jobs. Saat membuat pekerjaan untuk menerapkan 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 perintah destinationPackageVersions for API dan CLI dan VersionARN di Konsol Manajemen AWS. 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 pekerjaan atau template pekerjaan menggunakan versi paket default, gunakan $default flag di perintah CreateJob or CreateJobTemplate API 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 AWS IoT Jobs.

Ketika Anda puas dengan versi paket, terbitkan melalui halaman detail paket perangkat lunak di AWS IoT konsol atau dengan mengeluarkan operasi UpdatePackageVersion API. Anda kemudian dapat mereferensikan versi paket saat Anda membuat pekerjaan baik melalui AWS IoT konsol atau dengan mengeluarkan operasi CreateJob API.

Menamaan paket dan versi saat menerapkan

Untuk menerapkan versi paket perangkat lunak ke perangkat, konfirmasikan paket perangkat lunak dan versi paket yang dirujuk 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 kesalahan Katalog Paket Perangkat Lunak, lihatPesan Kesalahan Pemecahan Masalah Umum.

Selain paket perangkat lunak dan versi paket yang dirujuk dalam dokumen pekerjaan, Anda dapat menyertakan paket perangkat lunak tambahan dan versi paket dalam destinationPackageVersions parameter dalam operasi CreateJob API 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 selengkapnya tentang operasi CreateJob API, lihat CreateJob.

Menargetkan pekerjaan melalui AWS IoT kelompok benda dinamis

Katalog Paket Perangkat Lunak bekerja dengan pengindeksan armada, AWS IoT pekerjaan, dan grup AWS IoT benda 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 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 menjalankaniot-device-client 1.5.09. Untuk informasi selengkapnya, lihat Membuat grup benda dinamis.

Bayangan bernama cadangan dan versi paket

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 sesuatu yang dicadangkan bernama shadow.

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

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

  • AWS IoT Jobs tidak dikonfigurasi untuk memperbarui benda yang dicadangkan bernama shadow.

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

catatan

Sebaiknya gunakan AWS IoT Jobs untuk memperbarui versi paket di reservasi bernama shadow ($package). 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 inkonsistensi antara versi aktual pada perangkat dan versi yang dilaporkan ke bayangan bernama cadangan.

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

catatan

Mengaitkan versi paket ke AWS IoT sesuatu tidak secara langsung memperbarui perangkat lunak perangkat. Anda harus menerapkan 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 Cadangan.

Untuk menggunakan fitur ini, ganti nama versi di akhir Nama Sumber Daya PackageVersion Amazon (ARN) tujuan 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"]