View a markdown version of this page

Mempersiapkan untuk menggunakan Katalog Paket Perangkat Lunak - AWS IoT Core

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

Mempersiapkan untuk menggunakan Katalog Paket Perangkat Lunak

Bagian berikut memberikan gambaran umum tentang siklus hidup versi paket dan informasi untuk menggunakan Katalog Paket AWS IoT Device Management Perangkat Lunak.

Siklus hidup versi paket

Versi paket dapat berkembang melalui status siklus hidup berikut:draft,published, dandeprecated. Bisa jugadeleted.

Siklus hidup versi paket dengan draf, diterbitkan, dan tidak digunakan lagi. Itu juga bisa dihapus.
  • Rancangan

    Saat Anda membuat versi paket, itu dalam draft keadaan. Keadaan ini menunjukkan bahwa paket perangkat lunak sedang disiapkan atau tidak lengkap.

    Sementara versi paket dalam status ini, Anda tidak dapat menyebarkannya. Anda dapat mengedit deskripsi, atribut, dan tag versi paket.

    Anda dapat melakukan transisi versi paket yang berada dalam draft status ke published atau berada deleted dengan menggunakan konsol, atau dengan mengeluarkan operasi UpdatePackageVersion atau DeletePackageVersion API.

  • Diterbitkan

    Ketika versi paket Anda siap untuk digunakan, transisikan versi paket ke published status. Saat dalam keadaan ini, Anda dapat memilih untuk mengidentifikasi versi paket sebagai versi default dengan mengedit paket perangkat lunak di konsol atau melalui operasi UpdatePackage API. Dalam keadaan ini, Anda hanya dapat mengedit deskripsi dan tag.

    Anda dapat mentransisikan versi paket yang berada dalam published status ke deprecated atau sedang deleted dengan menggunakan konsol, atau mengeluarkan operasi UpdatePackageVersion atau DeletePackageVersion API.

  • Tidak digunakan lagi

    Jika versi paket baru tersedia, Anda dapat mentransisi versi paket sebelumnya kedeprecated. Anda masih dapat menerapkan pekerjaan dengan versi paket yang tidak digunakan lagi. Anda juga dapat memberi nama versi paket yang tidak digunakan lagi sebagai versi default, dan mengedit hanya deskripsi dan tag.

    Pertimbangkan untuk mengalihkan versi paket ke versi deprecated saat versi sudah usang, tetapi Anda masih memiliki perangkat di lapangan menggunakan versi yang lebih lama atau perlu mempertahankannya karena ketergantungan run-time.

    Anda dapat mentransisikan versi paket yang berada dalam deprecated status ke published atau berada deleted dengan menggunakan konsol, atau mengeluarkan UpdatePackageVersion operasi DeletePackageVersion API atau.

  • Dihapus

    Ketika Anda tidak lagi bermaksud menggunakan versi paket, Anda dapat menghapusnya dengan menggunakan konsol atau mengeluarkan operasi DeletePackageVersion API.

    catatan

    Jika Anda menghapus versi paket sementara ada pekerjaan tertunda yang mereferensikannya, Anda akan menerima pesan galat ketika pekerjaan berhasil diselesaikan dan mencoba memperbarui bayangan bernama cadangan.

    Jika versi paket perangkat lunak yang ingin Anda hapus dinamai sebagai versi paket default, Anda harus terlebih dahulu memperbarui paket untuk memberi nama versi lain sebagai default atau membiarkan bidang tanpa nama. Anda dapat melakukan ini dengan menggunakan konsol atau operasi UpdatePackageVersion API. (Untuk menghapus versi paket bernama apa pun sebagai default, setel DefaultVersion parameter unset ke true saat Anda mengeluarkan operasi UpdatePackage API).

    Jika Anda menghapus paket perangkat lunak melalui konsol, itu menghapus semua versi paket yang terkait dengan paket itu, kecuali salah satu diberi nama sebagai versi default.

Konvensi penamaan versi paket

Saat Anda memberi nama versi paket, penting untuk merencanakan dan menerapkan strategi penamaan logis sehingga Anda dan orang lain dapat dengan mudah mengidentifikasi versi paket terbaru dan perkembangan versi. Anda harus memberikan nama versi saat membuat versi paket, tetapi strategi dan formatnya sebagian besar tergantung pada kasus bisnis Anda.

Sebagai praktik terbaik, kami sarankan menggunakan SemVer format Versi Semantik. Misalnya, 1.2.3 di 1 mana versi utama untuk perubahan yang tidak kompatibel secara fungsional, versi 2 utama untuk perubahan yang kompatibel secara fungsional, dan 3 adalah versi patch (untuk perbaikan bug). Untuk informasi selengkapnya, lihat Versioning Semantik 2.0.0. Untuk informasi selengkapnya tentang persyaratan nama versi paket, lihat versionName di panduan referensi AWS IoT API.

Versi default

Menyetel versi sebagai default adalah opsional. Anda dapat menambahkan atau menghapus versi paket default. Anda juga dapat menerapkan versi paket yang tidak dinamai sebagai versi default.

Saat Anda membuat versi paket, itu ditempatkan dalam draft status dan tidak dapat dinamai sebagai versi default sampai Anda mengalihkan versi paket ke yang diterbitkan. Katalog Paket Perangkat Lunak tidak secara otomatis memilih versi sebagai default atau memperbarui versi paket yang lebih baru sebagai default. Anda harus sengaja memberi nama versi paket yang Anda pilih melalui konsol atau dengan mengeluarkan operasi UpdatePackageVersion API.

Atribut versi

Atribut versi dan nilainya menyimpan informasi penting tentang versi paket Anda. Sebaiknya tentukan atribut tujuan umum untuk paket atau versi paket. Misalnya, Anda dapat membuat pasangan nama-nilai untuk platform, arsitektur, sistem operasi, tanggal rilis, penulis, atau URL Amazon S3.

Saat Anda membuat AWS IoT pekerjaan dengan dokumen pekerjaan, Anda juga dapat memilih untuk menggunakan variabel substitusi ($parameter) yang mengacu pada nilai atribut. Untuk informasi selengkapnya, lihat Memper AWS IoT siapkan Pekerjaan.

Atribut versi yang digunakan dalam versi paket tidak akan ditambahkan secara otomatis ke bayangan bernama yang dicadangkan dan tidak dapat diindeks atau ditanyakan melalui Pengindeksan Armada secara langsung. Untuk mengindeks atau menanyakan atribut versi paket melalui Pengindeksan Armada, Anda dapat mengisi atribut version di bayangan bernama yang dicadangkan.

Sebaiknya parameter atribut version di properti yang dicadangkan dengan nama shadow capture yang dilaporkan, seperti sistem operasi dan waktu instalasi. Mereka juga dapat diindeks dan ditanyakan melalui Fleet Indexing.

Atribut versi tidak diperlukan untuk mengikuti konvensi penamaan tertentu. Anda dapat membuat pasangan nama-nilai untuk memenuhi kebutuhan bisnis Anda. Ukuran gabungan dari semua atribut pada versi paket dibatasi hingga 3KB. Untuk informasi selengkapnya, lihat paket perangkat lunak Katalog Perangkat Lunak dan batas versi paket.

Menggunakan semua atribut dalam dokumen pekerjaan

Anda dapat menambahkan semua atribut versi paket secara otomatis ke penerapan pekerjaan Anda untuk perangkat yang dipilih. Untuk secara otomatis menggunakan semua atribut versi paket secara terprogram dalam perintah API atau CLI, lihat contoh dokumen pekerjaan berikut:

"TestPackage": "${aws:iot:package:TestPackage:version:PackageVersion:attributes}"

Daftar Lengkap Komponen Perangkat Lunak

Daftar bahan perangkat lunak (SBOM) menyediakan repositori pusat untuk semua aspek paket perangkat lunak Anda. Selain menyimpan paket perangkat lunak dan versi paket, Anda dapat menyimpan daftar bahan perangkat lunak (SBOM) yang terkait dengan setiap versi paket di Katalog Paket AWS IoT Device Management Perangkat Lunak. Paket perangkat lunak berisi satu atau lebih versi paket dan setiap versi paket terdiri dari satu atau lebih komponen. Masing-masing komponen yang mendukung komposisi versi paket tertentu dapat dijelaskan dan dikatalogkan menggunakan daftar bahan perangkat lunak. Standar industri untuk tagihan bahan perangkat lunak yang didukung adalah SPDX dan CycloneDX. Ketika SBOM pertama kali dibuat, SBOM mengalami validasi terhadap format standar industri SPDX dan CyclonedX. Untuk informasi selengkapnya tentang SPDX, lihat Per tukaran Data Paket Sistem. Untuk informasi selengkapnya tentang CycloneDX, lihat CyclonedX.

Tagihan bahan perangkat lunak menjelaskan semua aspek komponen versi paket tertentu seperti informasi paket, informasi file, dan metadata terkait lainnya. Lihat contoh di bawah ini dari struktur dokumen tagihan bahan perangkat lunak dalam format SPDX:

Contoh SBOM dalam format SPDX.

Manfaat Tagihan Bahan Perangkat Lunak

Salah satu manfaat utama untuk menambahkan tagihan bahan perangkat lunak Anda untuk versi paket di Katalog Paket Perangkat Lunak adalah manajemen kerentanan.

Manajemen kerentanan

Menilai dan mengurangi kerentanan Anda terhadap risiko keamanan yang nyata dalam komponen perangkat lunak tetap penting untuk melindungi integritas armada perangkat Anda. Dengan penambahan tagihan bahan perangkat lunak yang disimpan dalam Katalog Paket Perangkat Lunak untuk setiap versi paket, Anda dapat secara proaktif mengekspos celah dalam keamanan dengan mengetahui perangkat apa yang berisiko berdasarkan versi paket mereka dan SBOM menggunakan solusi manajemen kerentanan internal Anda sendiri. Anda dapat menerapkan perbaikan ke perangkat yang terpengaruh dan melindungi armada perangkat Anda.

Penyimpanan Tagihan Bahan Perangkat Lunak

Daftar bahan perangkat lunak (SBOM) untuk setiap versi paket perangkat lunak disimpan dalam bucket Amazon S3 menggunakan fitur versioning Amazon S3. Bucket Amazon S3 yang menyimpan SBOM harus berada di wilayah yang sama tempat versi paket dibuat. Bucket Amazon S3 menggunakan fitur versioning mempertahankan beberapa varian objek dalam bucket yang sama. Untuk informasi selengkapnya tentang menggunakan pembuatan versi di bucket Amazon S3, lihat Menggunakan pembuatan versi di bucket Amazon S3.

catatan

Setiap versi paket perangkat lunak dapat memiliki beberapa file SBOM yang dilampirkan padanya, tetapi file SBOM harus disimpan dalam satu file arsip zip.

Kunci dan ID versi Amazon S3 spesifik untuk bucket Anda digunakan untuk mengidentifikasi secara unik setiap versi tagihan bahan perangkat lunak untuk versi paket.

catatan

Untuk versi paket dengan satu file SBOM, Anda dapat menyimpan file SBOM tersebut di bucket Amazon S3 Anda sebagai file arsip zip.

Untuk versi paket dengan beberapa file SBOM, Anda harus menempatkan semua file SBOM dalam satu file arsip zip dan kemudian menyimpan file arsip zip tersebut di bucket Amazon S3 Anda.

Semua file SBOM yang disimpan dalam file arsip zip tunggal di kedua skenario diformat sebagai file SPDX atau CyclonedX .json.

Kebijakan Izin

Agar dapat AWS IoT bertindak sebagai prinsipal yang ditentukan untuk mengakses file arsip zip SBOM yang disimpan di bucket Amazon S3, Anda memerlukan kebijakan izin berbasis sumber daya. Lihat contoh berikut untuk kebijakan izin berbasis sumber daya yang benar:

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "iot.amazonaws.com" ] }, "Action": "s3:*", "Resource": "arn:aws:s3:::bucketName/*" } ] }

Untuk informasi selengkapnya tentang kebijakan izin berbasis sumber daya, lihat AWS IoT kebijakan berbasis sumber daya

Memperbarui SBOM

Anda dapat memperbarui daftar bahan perangkat lunak sesering yang diperlukan untuk melindungi dan meningkatkan armada perangkat Anda. Setiap kali tagihan bahan perangkat lunak diperbarui di bucket Amazon S3 Anda, ID versi berubah dan Anda harus mengaitkan URL bucket Amazon S3 baru dengan versi paket perangkat lunak yang sesuai. Anda akan melihat ID versi baru di kolom ID versi Objek Amazon S3 pada halaman versi paket di Konsol Manajemen AWS. Selain itu, Anda dapat menggunakan operasi API GetPackageVersion atau perintah CLI get-package-version untuk melihat ID versi baru.

catatan

Memperbarui tagihan bahan perangkat lunak Anda, yang akan menyebabkan ID versi baru, tidak akan menyebabkan versi paket baru dibuat.

Untuk informasi selengkapnya tentang kunci objek Amazon S3, lihat Membuat nama kunci objek.

Mengaktifkan AWS IoT pengindeksan armada

Mengaktifkan pengindeksan AWS IoT armada adalah persyaratan untuk menggunakan Katalog Paket AWS IoT Device Management Perangkat Lunak. Untuk memanfaatkan pengindeksan AWS IoT armada dengan Katalog Paket Perangkat Lunak, tetapkan shadow ($package) yang dicadangkan sebagai sumber data untuk setiap perangkat yang ingin Anda indeks dan kumpulkan metrik. Untuk informasi selengkapnya tentang bayangan bernama yang dicadangkan, lihatCadangan bernama bayangan.

Pengindeksan armada menyediakan dukungan yang memungkinkan AWS IoT hal-hal dikelompokkan melalui grup benda dinamis yang difilter berdasarkan versi paket perangkat lunak. Misalnya, pengindeksan armada dapat mengidentifikasi hal-hal yang telah atau tidak memiliki versi paket tertentu diinstal, tidak menginstal versi paket apa pun, atau cocok dengan pasangan nama-nilai tertentu. Terakhir, pengindeksan armada menyediakan metrik standar dan kustom yang dapat Anda gunakan untuk mendapatkan wawasan tentang keadaan armada perangkat Anda. Untuk informasi selengkapnya, lihat Mempersiapkan pengindeksan armada.

catatan

Mengaktifkan pengindeksan armada untuk Katalog Paket Perangkat Lunak menimbulkan biaya layanan standar. Untuk informasi lebih lanjut, lihat AWS IoT Device Management, Harga.

Cadangan bernama bayangan

Shadow yang dicad $package angkan,, mencerminkan keadaan paket perangkat lunak yang diinstal dan versi paket. Pengindeksan armada menggunakan bayangan bernama cadangan sebagai sumber data untuk membuat metrik standar dan kustom sehingga Anda dapat menanyakan status armada Anda. Untuk informasi selengkapnya, lihat Mempersiapkan pengindeksan armada.

Bayangan bernama cadangan mirip dengan bayangan bernama dengan pengecualian bahwa namanya telah ditentukan sebelumnya dan Anda tidak dapat mengubahnya. Selain itu, bayangan bernama cadangan tidak diperbarui dengan metadata, dan hanya menggunakan attributes kata kunci version dan.

Permintaan pembaruan yang menyertakan kata kunci laindescription, seperti, akan menerima respons kesalahan di bawah rejected topik. Untuk informasi selengkapnya, lihat pesan kesalahan Device Shadow.

Ini dapat dibuat ketika Anda membuat AWS IoT sesuatu melalui konsol, ketika AWS IoT pekerjaan berhasil menyelesaikan dan memperbarui bayangan, dan jika Anda mengeluarkan operasi UpdateThingShadow API. Untuk informasi selengkapnya, lihat UpdateThingShadow di panduan AWS IoT Core pengembang.

catatan

Pengindeksan bayangan bernama yang dicadangkan tidak dihitung dalam jumlah bayangan bernama yang dapat diindeks oleh pengindeksan armada. Untuk informasi selengkapnya, lihat batas dan kuota pengindeksan AWS IoT Device Management armada. Selain itu, jika Anda memilih agar AWS IoT pekerjaan memperbarui bayangan bernama cadangan saat pekerjaan berhasil diselesaikan, panggilan API dihitung ke dalam operasi Device Shadow dan registri Anda dan dapat dikenakan biaya. Untuk informasi selengkapnya, lihat batasan dan kuota AWS IoT Device Management pekerjaan dan tipe data IndexingFilter API.

Struktur bay $package angan

Shadow yang dicadangkan berisi yang berikut ini:

{ "state": { "reported": { "<packageName>": { "version": "", "attributes": { } } } }, "version" : 1 "timestamp" : 1672531201 }

Properti bayangan diperbarui dengan informasi berikut:

  • <packageName>: Nama paket perangkat lunak yang diinstal, yang diperbarui dengan parameter PackageName.

  • version: Nama versi paket yang diinstal, yang diperbarui dengan parameter versionName.

  • attributes: Metadata opsional yang disimpan oleh perangkat dan diindeks oleh pengindeksan Armada. Hal ini memungkinkan pelanggan untuk menanyakan indeks mereka berdasarkan data yang disimpan.

  • version: Nomor versi bayangan. Secara otomatis bertambah setiap kali bayangan diperbarui dan dimulai pada1.

  • timestamp: Menunjukkan kapan bayangan terakhir diperbarui dan direkam dalam waktu https://en.wikipedia.org/wiki/Unix_time Unix.

Untuk informasi selengkapnya tentang format dan perilaku bayangan bernama, lihat Ur Layanan AWS IoT Device Shadow utan pesan.

Menghapus paket perangkat lunak dan versi paketnya

Sebelum Anda menghapus paket perangkat lunak, lakukan hal berikut:

  • Konfirmasikan bahwa paket dan versinya tidak aktif digunakan.

  • Hapus semua versi terkait terlebih dahulu. Jika salah satu versi ditetapkan sebagai versi default, Anda harus menghapus versi default bernama dari paket. Karena menunjuk versi default adalah opsional, tidak ada konflik untuk menghapusnya. Untuk menghapus versi default dari paket perangkat lunak, edit paket melalui konsol atau gunakan operasi UpdatePackageVersion API.

Selama tidak ada versi paket default bernama, Anda dapat menggunakan konsol untuk menghapus paket perangkat lunak dan semua versi paketnya juga akan dihapus. Jika Anda menggunakan panggilan API untuk menghapus paket perangkat lunak, Anda harus menghapus versi paket terlebih dahulu dan kemudian paket perangkat lunak.