

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

# Memperbarui status versi paket
<a name="update-package-version-status"></a>

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, lihat[Status versi paket](packages-overview.md#package-version-status). 

## Memperbarui status versi paket
<a name="updating-pv-status"></a>

Mengatur status versi paket memungkinkan mengontrol bagaimana versi paket dapat digunakan tanpa menghapusnya sepenuhnya dari repositori. Misalnya, ketika versi paket memiliki status`Unlisted`, itu masih dapat diunduh seperti biasa, tetapi tidak akan muncul dalam daftar versi paket yang dikembalikan ke perintah seperti`npm view`. [UpdatePackageVersionsStatus API](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_UpdatePackageVersionsStatus.html) memungkinkan pengaturan status versi paket dari beberapa versi paket yang sama dalam satu panggilan API. Untuk deskripsi status yang berbeda, lihat[Gambaran umum paket](packages-overview.md).

Gunakan `update-package-versions-status` perintah untuk mengubah status versi paket menjadi`Published`,`Unlisted`, atau`Archived`. Untuk melihat izin IAM yang diperlukan untuk menggunakan perintah, lihat. [Izin IAM yang diperlukan untuk memperbarui status versi paket](#update-package-version-status-iam) 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
<a name="update-package-version-status-iam"></a>

`update-package-versions-status`Untuk 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` 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 cakupan
<a name="update-package-version-status-scoped-npm"></a>

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
<a name="update-package-version-status-maven"></a>

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 Maven`org.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
<a name="update-status-specify-package-version-revision"></a>

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**  
`—-versions`Parameter 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
<a name="using-expected-status"></a>

`update-package-versions-status`Perintah 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\$1repo*, versi 4.0.0 dan 4.1.0 dari paket npm `chalk` saat ini memiliki status. `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
<a name="update-package-version-status-errors"></a>

Ada beberapa alasan mengapa status versi paket tidak akan diperbarui saat menelepon`update-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` a`SKIPPED`.

Dalam implementasi saat ini`update-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 ke`update-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
<a name="dispose-package-versions"></a>

Status `Disposed` paket memiliki perilaku yang mirip dengan`Archived`, 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, lihat[Status versi paket](packages-overview.md#package-version-status). Untuk mengubah status versi paket ke`Disposed`, 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 ke`Archived`,`Unlisted`, atau`Published`. Satu-satunya tindakan yang dapat diambil pada versi paket yang telah dibuang adalah untuk menghapusnya menggunakan `delete-package-versions` perintah.

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

Perilaku `dispose-package-versions` perintah mirip dengan`update-package-versions-status`, termasuk perilaku `--version-revisions ` dan `--expected-status` opsi yang dijelaskan dalam [revisi versi](#update-status-specify-package-version-revision) dan bagian [status yang diharapkan](#using-expected-status). 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` of`Published`, 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": {}
}
```