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 konsol 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 mengontrol 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, lihat. Izin IAM yang diperlukan 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, sehingga 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.

Izin IAM yang diperlukan 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 menelepon update-package-versions-status berdasarkan per paket. Misalnya, kebijakan IAM yang memberikan izin untuk memanggil update-package-versions-status kapur paket npm 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 cakupan

Untuk memperbarui status versi paket dari 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 memanggil. update-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 beberapa 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 ditentukan 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, teruskan daftar pasangan revisi versi dan versi yang dipisahkan koma ke opsi. --version-revisions Contoh perintah berikut mendefinisikan dua versi paket yang berbeda dan pasangan revisi versi paket.

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 --version-revisions harus sama dengan versi yang diteruskan--versions. Jika revisi ditentukan secara tidak benar, versi itu tidak akan diperbarui statusnya.

Menggunakan parameter status yang diharapkan

update-package-versions-statusPerintah menyediakan --expected-status parameter yang mendukung menentukan status saat ini yang diharapkan dari versi paket. Jika status saat ini tidak sesuai dengan nilai yang diteruskan--expected-status, status versi paket tersebut tidak akan diperbarui.

Misalnya, di my_repo, versi 4.0.0 dan 4.1.0 dari paket npm saat ini memiliki status. chalk Published Panggilan 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 cocok 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 tersebut juga akan dimasukkan dalam failedVersions peta dengan errorCode aSKIPPED.

Dalam implementasi saat iniupdate-package-versions-status, jika satu atau lebih versi tidak dapat diubah 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 depan, 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 bahwa aset paket akan dihapus secara permanen CodeArtifact 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 keDisposed, 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 untuk menghapusnya menggunakan delete-package-versions perintah.

dispose-package-versionsAgar berhasil menelepon, prinsipal IAM pemanggil harus memiliki codeartifact:DisposePackageVersions izin pada sumber daya paket.

Perilaku dispose-package-versions perintah mirip denganupdate-package-versions-status, termasuk perilaku --version-revisions dan --expected-status opsi yang dijelaskan dalam revisi versi dan bagian status yang diharapkan. Misalnya, perintah berikut mencoba untuk 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 a --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": {} }