View a markdown version of this page

Memperbarui status versi paket - CodeArtifact

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

Memperbarui status versi paket

Setiap versi paket CodeArtifact memiliki status yang menjelaskan status saat ini dan ketersediaan versi paket. Anda dapat mengubah status versi paket menggunakan kedua AWS CLI dan konsol.

catatan

Untuk informasi selengkapnya tentang status versi paket, termasuk daftar status yang tersedia, lihatStatus versi paket.

Memperbarui status versi paket

Mengatur status versi paket memungkinkan pengendalian bagaimana versi paket dapat digunakan tanpa menghapusnya sepenuhnya dari repositori. Misalnya, ketika versi paket memiliki statusUnlisted, itu masih dapat diunduh seperti biasa, tetapi tidak akan muncul dalam daftar versi paket yang dikembalikan ke perintah sepertinpm view. UpdatePackageVersionsStatus API memungkinkan pengaturan status versi paket dari beberapa versi paket yang sama dalam satu panggilan API. Untuk deskripsi status yang berbeda, lihatGambaran umum paket.

Gunakan update-package-versions-status perintah untuk mengubah status versi paket menjadiPublished,Unlisted, atauArchived. Untuk melihat izin IAM yang diperlukan untuk menggunakan perintah, lihatDiperlukan izin IAM untuk memperbarui status versi paket. Contoh berikut menetapkan status versi 4.1.0 dari paket chalk npm ke. Archived

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.1.0 --target-status Archived

Contoh output:

{ "successfulVersions": { "4.1.0": { "revision": "+Oz8skWbwY3k8M6SrNIqNj6bVH/ax+CxvkJx+No5j8I=", "status": "Archived" } }, "failedVersions": {} }

Contoh ini menggunakan paket npm, tetapi perintah bekerja identik untuk format lain. Beberapa versi dapat dipindahkan ke status target yang sama menggunakan satu perintah, lihat contoh berikut.

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.1.0 4.1.1 --target-status Archived

Contoh output:

{ "successfulVersions": { "4.1.0": { "revision": "25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=", "status": "Archived" }, "4.1.1": { "revision": "+Oz8skWbwY3k8M6SrNIqNj6bVH/ax+CxvkJx+No5j8I=", "status": "Archived" } }, "failedVersions": {} }

Perhatikan bahwa setelah diterbitkan, versi paket tidak dapat dipindahkan kembali ke Unfinished status, jadi status ini tidak diizinkan sebagai nilai untuk --target-status parameter. Untuk memindahkan versi paket ke Disposed status, gunakan dispose-package-versions perintah sebagai gantinya seperti yang dijelaskan di bawah ini.

Diperlukan izin IAM untuk memperbarui status versi paket

update-package-versions-statusUntuk memanggil paket, Anda harus memiliki codeartifact:UpdatePackageVersionsStatus izin pada sumber daya paket. Ini berarti Anda dapat memberikan izin untuk menelep update-package-versions-status on berdasarkan per paket. Misalnya, kebijakan IAM yang memberikan izin untuk memanggil update-package-versions-status paket npm chalk akan menyertakan pernyataan seperti berikut ini.

{ "Action": [ "codeartifact:UpdatePackageVersionsStatus" ], "Effect": "Allow", "Resource": "arn:aws:codeartifact:us-east-1:111122223333:package/my_domain/my_repo/npm//chalk" }

Memperbarui status untuk paket npm yang dicakup

Untuk memperbarui status versi paket versi paket npm dengan cakupan, gunakan --namespace parameter. Misalnya, untuk membatalkan daftar versi 8.0.0 dari@nestjs/core, gunakan perintah berikut.

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --namespace nestjs --package core --versions 8.0.0 --target-status Unlisted

Memperbarui status untuk paket Maven

Paket Maven selalu memiliki ID grup, yang disebut sebagai namespace di CodeArtifact. Gunakan --namespace parameter untuk menentukan ID grup Maven saat memanggilupdate-package-versions-status. Misalnya, untuk mengarsipkan versi 2.13.1 dari paket Mavenorg.apache.logging.log4j:log4j, gunakan perintah berikut.

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format maven --namespace org.apache.logging.log4j --package log4j --versions 2.13.1 --target-status Archived

Menentukan revisi versi paket

Revisi versi paket adalah string yang menentukan serangkaian aset dan metadata tertentu untuk versi paket. Anda dapat menentukan revisi versi paket untuk memperbarui status versi paket yang berada dalam keadaan tertentu. Untuk menentukan revisi versi paket, gunakan --version-revisions parameter untuk meneruskan satu atau lebih versi paket yang dipisahkan koma dan pasangan revisi versi paket. Status versi paket hanya akan diperbarui jika revisi versi paket saat ini cocok dengan nilai yang ditentukan.

catatan

--versionsParameter juga harus didefinisikan saat menggunakan --version-revisions parameter.

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8bzVMJ4=" --versions 4.1.0 --target-status Archived

Untuk memperbarui beberapa versi dengan satu perintah, berikan daftar pasangan versi dan revisi versi yang dipisahkan koma ke --version-revisions opsi. Perintah contoh berikut mendefinisikan dua pasangan revisi versi paket dan versi paket yang berbeda.

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=,4.0.0=E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=" --versions 4.1.0 4.0.0 --target-status Published

Contoh output:

{ "successfulVersions": { "4.0.0": { "revision": "E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=", "status": "Published" }, "4.1.0": { "revision": "25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=", "status": "Published" } }, "failedVersions": {} }

Saat memperbarui beberapa versi paket, versi yang diteruskan ke --version-revisions harus sama dengan versi yang diteruskan ke--versions. Jika revisi ditentukan secara tidak benar, versi itu tidak akan diperbarui statusnya.

Menggunakan parameter status yang diharapkan

Per update-package-versions-status intah menyediakan --expected-status parameter yang mendukung menentukan status saat ini yang diharapkan dari versi paket. Jika status saat ini tidak cocok dengan nilai yang diter --expected-status uskan ke, status versi paket itu tidak akan diperbarui.

Misalnya, dimy_repo, versi 4.0.0 dan 4.1.0 dari paket npm chalk saat ini memiliki status. Published Panggilan ke update-package-versions-status yang menentukan status yang diharapkan Unlisted akan gagal memperbarui kedua versi paket karena ketidakcocokan status.

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.1.0 4.0.0 --target-status Archived --expected-status Unlisted

Contoh output:

{ "successfulVersions": {}, "failedVersions": { "4.0.0": { "errorCode": "MISMATCHED_STATUS", "errorMessage": "current status: Published, expected status: Unlisted" }, "4.1.0": { "errorCode": "MISMATCHED_STATUS", "errorMessage": "current status: Published, expected status: Unlisted" } } }

Kesalahan dengan versi paket individual

Ada beberapa alasan mengapa status versi paket tidak akan diperbarui saat meneleponupdate-package-versions-status. Misalnya, revisi versi paket mungkin telah ditentukan secara tidak benar, atau status yang diharapkan tidak sesuai dengan status saat ini. Dalam kasus ini, versi akan disertakan dalam failedVersions peta dalam respons API. Jika satu versi gagal, versi lain yang ditentukan dalam panggilan yang sama update-package-versions-status mungkin dilewati dan statusnya tidak diperbarui. Versi seperti itu juga akan dimasukkan dalam failedVersions peta dengan sebuah errorCode ofSKIPPED.

Dalam implementasi saat iniupdate-package-versions-status, jika satu atau lebih versi tidak dapat mengubah statusnya, semua versi lain akan dilewati. Artinya, semua versi berhasil diperbarui atau tidak ada versi yang diperbarui. Perilaku ini tidak dijamin dalam kontrak API; di masa mendatang, beberapa versi mungkin berhasil sementara versi lain gagal dalam satu panggilan keupdate-package-versions-status.

Perintah contoh berikut mencakup kegagalan pembaruan status versi yang disebabkan oleh ketidakcocokan revisi versi paket. Kegagalan pembaruan itu menyebabkan panggilan pembaruan status versi lain dilewati.

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ=,4.0.0=E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=" --versions 4.1.0 4.0.0 --target-status Archived

Contoh output:

{ "successfulVersions": {}, "failedVersions": { "4.0.0": { "errorCode": "SKIPPED", "errorMessage": "version 4.0.0 is skipped" }, "4.1.0": { "errorCode": "MISMATCHED_REVISION", "errorMessage": "current revision: 25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=, expected revision: 25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ=" } } }

Membuang versi paket

Status Disposed paket memiliki perilaku yang mirip denganArchived, kecuali menghapus aset paket CodeArtifact secara permanen sehingga akun pemilik domain tidak lagi ditagih untuk penyimpanan aset. Untuk informasi selengkapnya tentang setiap status versi paket, lihatStatus versi paket. Untuk mengubah status versi paket menjadiDisposed, gunakan dispose-package-versions perintah. Kemampuan ini terpisah dari update-package-versions-status karena membuang versi paket tidak dapat dibalik. Karena aset paket akan dihapus, status versi tidak dapat diubah kembali keArchived,Unlisted, atauPublished. Satu-satunya tindakan yang dapat diambil pada versi paket yang telah dibuang adalah menghapusnya menggunakan delete-package-versions perintah.

Agar panggilan dispose-package-versions berhasil, kepala sekolah IAM yang memanggil harus memiliki codeartifact:DisposePackageVersions izin pada sumber daya paket.

Perilaku dispose-package-versions perintah mirip denganupdate-package-versions-status, termasuk perilaku --expected-status opsi --version-revisions dan yang dijelaskan dalam revisi versi dan bagian status yang diharapkan. Misalnya, perintah berikut mencoba membuang versi paket tetapi gagal karena status yang diharapkan tidak cocok.

aws codeartifact dispose-package-versions --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.0.0 --expected-status Unlisted

Contoh output:

{ "successfulVersions": {}, "failedVersions": { "4.0.0": { "errorCode": "MISMATCHED_STATUS", "errorMessage": "current status: Published, expected status: Unlisted" } } }

Jika perintah yang sama dijalankan lagi dengan an --expected-status ofPublished, pembuangan akan berhasil.

aws codeartifact dispose-package-versions --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.0.0 --expected-status Published

Contoh output:

{ "successfulVersions": { "4.0.0": { "revision": "E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=", "status": "Disposed" } }, "failedVersions": {} }