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 ikhtisar siklus hidup versi paket dan informasi untuk menggunakan Katalog AWS IoT Device Management Paket Perangkat Lunak.

Siklus hidup versi paket

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

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

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

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

    Anda dapat mentransisikan versi paket yang berada dalam draft status ke published atau menjadi deleted dengan menggunakan konsol, atau dengan mengeluarkan salah satu UpdatePackageVersionatau DeletePackageVersionAPIoperasi.

  • Diterbitkan

    Ketika versi paket Anda siap untuk digunakan, transisi 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 UpdatePackageAPIoperasi. Dalam keadaan ini, Anda hanya dapat mengedit deskripsi dan tag.

    Anda dapat mentransisikan versi paket yang berada dalam published status ke deprecated atau menjadi deleted dengan menggunakan konsol, atau mengeluarkan salah satu UpdatePackageVersionatau DeletePackageVersionAPIoperasi.

  • Usang

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

    Pertimbangkan untuk mentransisikan versi paket ke 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 menjadi deleted dengan menggunakan konsol, atau mengeluarkan salah satu UpdatePackageVersionatau DeletePackageVersionAPIoperasi.

  • Dihapus

    Ketika Anda tidak lagi berniat menggunakan versi paket, Anda dapat menghapusnya dengan menggunakan konsol atau mengeluarkan DeletePackageVersionAPIoperasi.

    catatan

    Jika Anda menghapus versi paket saat ada pekerjaan tertunda yang mereferensikannya, Anda akan menerima pesan kesalahan saat pekerjaan berhasil diselesaikan dan mencoba memperbarui bayangan bernama yang dicadangkan.

    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 tidak disebutkan namanya. Anda dapat melakukan ini dengan menggunakan konsol atau UpdatePackageVersionAPIoperasi. (Untuk menghapus versi paket bernama sebagai default, setel unsetDefaultVersionparameter ke true saat Anda mengeluarkan UpdatePackageAPIoperasi).

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

Konvensi penamaan versi Package

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 format Versi SemVerSemantik. Misalnya, 1.2.3 di mana 1 versi utama untuk perubahan yang tidak kompatibel secara fungsional, 2 versi utama untuk perubahan yang kompatibel secara fungsional, dan 3 merupakan versi tambalan (untuk perbaikan bug). Untuk informasi selengkapnya, lihat Versioning Semantik 2.0.0. Untuk informasi selengkapnya tentang persyaratan nama versi paket, lihat versionNamedi panduan AWS IoT API referensi.

Versi default

Menyetel versi sebagai default adalah opsional. Anda dapat menambah 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 keadaan dan tidak dapat dinamai sebagai versi default sampai Anda mentransisikan versi paket ke diterbitkan. Software Package Catalog tidak secara otomatis memilih versi sebagai default atau memperbarui versi paket yang lebih baru sebagai default. Anda harus dengan sengaja memberi nama versi paket yang Anda pilih melalui konsol atau dengan mengeluarkan operasi. UpdatePackageVersionAPI

Atribut versi

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

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 Mempersiapkan AWS IoT Pekerjaan.

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

Kami merekomendasikan bahwa parameter atribut versi dalam properti yang dilaporkan perangkat tangkapan bayangan bernama yang dicadangkan, seperti sistem operasi dan waktu instalasi. Mereka juga dapat diindeks dan ditanyakan melalui Pengindeksan Armada.

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 Paket Perangkat Lunak dan batas versi paket.

Menggunakan semua atribut dalam dokumen pekerjaan

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

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

Tagihan Material Perangkat Lunak

Tagihan 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 tagihan perangkat lunak materi (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 tagihan bahan perangkat lunak. Standar industri untuk tagihan bahan perangkat lunak yang didukung adalah SPDX dan CycloneDX. Ketika pertama kali SBOM dibuat, ia mengalami validasi terhadap format standar industri SPDX dan CycloneDX. Untuk informasi selengkapnyaSPDX, lihat System Package Data Exchange. Untuk informasi lebih lanjut tentang CycloneDX, lihat CycloneDX.

Tagihan materi 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 SPDX format:

Contoh a SBOM dalam SPDX format.

Manfaat Tagihan Material Perangkat Lunak

Salah satu manfaat utama untuk menambahkan tagihan materi 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 perangkat lunak materi 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 paketnya dan SBOM menggunakan solusi manajemen kerentanan internal Anda sendiri. Anda dapat menerapkan perbaikan ke perangkat yang terpengaruh tersebut dan melindungi armada perangkat Anda.

Perangkat Lunak Bill of Material Storage

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

catatan

Setiap versi paket perangkat lunak hanya memiliki satu SBOM file yang disimpan sebagai file arsip zip.

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

catatan

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

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

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

Kebijakan Izin

Agar AWS IoT bertindak sebagai prinsipal yang ditentukan untuk mengakses file arsip SBOM zip 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 tagihan materi perangkat lunak sesering yang diperlukan untuk melindungi dan meningkatkan armada perangkat Anda. Setiap kali tagihan materi perangkat lunak diperbarui di bucket Amazon S3 Anda, ID versi berubah, Katalog Paket Perangkat Lunak diberitahu tentang pembaruan, dan Anda harus mengaitkan bucket Amazon S3 baru URL dengan versi paket yang sesuai. Anda akan melihat ID versi baru di kolom ID versi Objek Amazon S3 pada halaman versi paket di. AWS Management Console Selain itu, Anda dapat menggunakan API operasi GetPackageVersion atau CLI perintah get-package-version untuk melihat ID versi baru.

catatan

Memperbarui tagihan materi 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 pengindeksan AWS IoT armada

Untuk memanfaatkan pengindeksan AWS IoT armada dengan Software Package Catalog, tetapkan shadow ($package) bernama reserved sebagai sumber data untuk setiap perangkat yang ingin Anda indeks dan kumpulkan metrik. Untuk informasi lebih lanjut tentang bayangan bernama yang dicadangkan, lihatCadangan bernama bayangan.

Pengindeksan armada memberikan dukungan yang memungkinkan AWS IoT hal-hal dikelompokkan melalui grup benda dinamis yang difilter oleh versi paket perangkat lunak. Misalnya, pengindeksan armada dapat mengidentifikasi hal-hal yang telah atau tidak memiliki versi paket tertentu yang diinstal, tidak memiliki versi paket yang diinstal, atau cocok dengan pasangan nama-nilai tertentu. Terakhir, pengindeksan armada menyediakan metrik standar dan kustom yang dapat Anda gunakan untuk mendapatkan wawasan tentang status 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

Bayangan bernama yang dicadangkan$package,, mencerminkan keadaan paket perangkat lunak yang diinstal perangkat 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 yang dicadangkan tidak diperbarui dengan metadata, dan hanya menggunakan kata kunci dan kata kunciversion. attributes

Permintaan pembaruan yang menyertakan kata kunci laindescription, seperti, akan menerima respons kesalahan di bawah rejected topik. Untuk informasi selengkapnya, lihat Pesan galat 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 UpdateThingShadowAPIoperasi. Untuk informasi selengkapnya, lihat UpdateThingShadowdi panduan AWS IoT Core pengembang.

catatan

Mengindeks bayangan bernama cadangan tidak dihitung terhadap jumlah bayangan bernama yang dapat diindeks oleh pengindeksan armada. Untuk informasi selengkapnya, lihat batas pengindeksan AWS IoT Device Management armada dan kuota. Selain itu, jika Anda memilih untuk meminta AWS IoT lowongan memperbarui bayangan bernama yang dicadangkan saat pekerjaan berhasil diselesaikan, API panggilan akan dihitung untuk Device Shadow dan operasi registri Anda dan dapat dikenakan biaya. Untuk informasi selengkapnya, lihat batas AWS IoT Device Management pekerjaan dan kuota serta tipe IndexingFilterAPIdata.

Struktur $package bayangan

Bayangan bernama cadangan berisi yang berikut:

{ "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 packageNameparameter.

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

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

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

  • timestamp: Menunjukkan kapan bayangan terakhir diperbarui dan direkam dalam waktu Unix.

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

Menghapus paket perangkat lunak dan versi paketnya

Sebelum Anda menghapus paket perangkat lunak, lakukan hal berikut:

  • Konfirmasikan bahwa paket dan versinya tidak digunakan secara aktif.

  • 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 menghapusnya. Untuk menghapus versi default dari paket perangkat lunak, edit paket melalui konsol atau gunakan UpdatePackageVersionAPIoperasi.

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 API panggilan untuk menghapus paket perangkat lunak, Anda harus menghapus versi paket terlebih dahulu dan kemudian paket perangkat lunak.