

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# パッケージバージョンのステータスの更新
<a name="update-package-version-status"></a>

CodeArtifact のすべてのパッケージバージョンには、パッケージバージョンの現在の状態と使用可用性を示すステータスがあります。パッケージバージョンのステータスは、 AWS CLI と コンソールの両方を使用して変更できます。

**注記**  
使用可能なステータスのリストを含む、パッケージバージョンのステータスの詳細については、[パッケージバージョンのステータス](packages-overview.md#package-version-status)を参照してください。

## パッケージバージョンのステータスの更新
<a name="updating-pv-status"></a>

パッケージバージョンのステータスを設定することで、そのパッケージバージョンをリポジトリから完全に削除することなく、使用方法をコントロールできます。例えば、パッケージバージョンのステータスが`Unlisted`の場合、通常どおりダウンロードすることはできますが、`npm view`のようなコマンドに戻されたパッケージバージョンリストには表示されません。[[パッケージのバージョンステータスのアップロード API]](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_UpdatePackageVersionsStatus.html) では、単一の API コールで、同じパッケージの複数のバージョンのパッケージバージョンステータスを設定することができます。さまざまなステータスの説明については、[パッケージの概要](packages-overview.md)を参照してください。

`update-package-versions-status`コマンドを使用して、パッケージバージョンのステータスを`Published`、`Unlisted`、または`Archived`に変更します コマンドを使用するために必要な IAM 権限を要求するには、[パッケージバージョンのステータスを更新するために必要な IAM 権限](#update-package-version-status-iam)を参照してください。次の例では、npm パッケージ`chalk`のバージョン 4.1.0 のステータスを`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
```

サンプル出力:

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

この例では、npm パッケージを使用しますが、このコマンドは他の形式でも同じように機能します。ひとつのコマンドを使用して、複数のバージョンを同じターゲットステータスに移動できます。次の例を参照してください。

```
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
```

サンプル出力:

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

いったん公開されると、パッケージバージョンを`Unfinished`ステータスに戻せないので、このステータスは`--target-status`パラメータの値として許可されません。パッケージバージョンを`Disposed`の状態に動かすためには、代わりに以下のように`dispose-package-versions`コマンドを使用します。

## パッケージバージョンのステータスを更新するために必要な IAM 権限
<a name="update-package-version-status-iam"></a>

パッケージに `update-package-versions-status` を呼び出す場合は、パッケージリソースに対する `codeartifact:UpdatePackageVersionsStatus` 権限が必要です。つまり、パッケージごとに `update-package-versions-status` を呼び出す権限を付与することができます。例えば、npm パッケージ *[チョーク]* の `update-package-versions-status` を呼び出す許可を付与する IAM ポリシーには、次のようなステートメントが含まれます。

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

## スコープ指定された npm パッケージのステータスの更新
<a name="update-package-version-status-scoped-npm"></a>

スコープを使用して npm パッケージバージョンのパッケージバージョンステータスを更新するには、`--namespace`パラメータを使用してください。例えば、`@nestjs/core`のバージョン 8.0.0 を一覧表示しないようにするためには、次のようなコマンドを使用します。

```
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
```

## Maven パッケージのステータスの更新
<a name="update-package-version-status-maven"></a>

Maven パッケージには常にグループ ID があり、CodeArtifact では名前空間と呼ばれます。`update-package-versions-status` を呼び出す際は、`--namespace` パラメータで Maven グループ ID を指定します。例えば、Maven パッケージ `org.apache.logging.log4j:log4j` のバージョン 2.13.1 をアーカイブするには、以下のコマンドを使用します。

```
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
```

## パッケージバージョンリビジョンの指定
<a name="update-status-specify-package-version-revision"></a>

パッケージバージョンリビジョンは、パッケージバージョンの特定のアセットとメタデータのセットを指定する文字列です。パッケージバージョンリビジョンを指定して、特定の状態にあるパッケージバージョンを更新できます。パッケージバージョンのリビジョンを指定するには、`--version-revisions` パラメータを使用して、ひとつ以上のカンマ区切りパッケージバージョンとパッケージバージョンリビジョンのペアを渡します。パッケージバージョンのステータスは、パッケージバージョンの現在のリビジョンが指定された値と一致する場合にのみ更新されます。

**注記**  
`--version-revisions`パラメータを使用する場合、`—-versions`パラメータも定義する必要があります。

```
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
```

ひとつのコマンドで複数のバージョンを更新するには、バージョンのカンマ区切りリストとバージョンリビジョンのペアを`--version-revisions`オプションに渡します。次のコマンドの例では、二つの異なるパッケージバージョンとパッケージバージョンのリビジョンのペアを定義します。

```
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
```

サンプル出力:

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

複数のパッケージバージョンを更新する場合、`--version-revisions`に渡されますバージョンが`--versions`に渡されたバージョンと同じである必要があります。リビジョンが正しく指定されていない場合、そのバージョンのステータスは更新されません。

## 期待されるステータスパラメータの使用
<a name="using-expected-status"></a>

`update-package-versions-status`コマンドは、パッケージバージョンの予想される現在のステータスの指定をサポートする`--expected-status`パラメータを提供します。現在のステータスが`--expected-status`に渡された値と一致しない場合、そのパッケージバージョンのステータスは更新されません。

例えば、*[my\$1repo]* の、npm パッケージ`chalk`のバージョン 4.0.0 および 4.1.0 には、現在`Published`のステータスがあります。`Unlisted`の期待されるステータスを指定する`update-package-versions-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
```

サンプル出力:

```
{
    "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"
        }
    }
}
```

## 個々のパッケージバージョンでのエラー
<a name="update-package-version-status-errors"></a>

`update-package-versions-status`を呼び出すときにパッケージバージョンのステータスが更新されない理由は複数あります。例えば、パッケージバージョンのリビジョンが正しく指定されていなかったり、予期されるステータスが現在のステータスと一致しない可能性があります。このような場合、そのバージョンは API レスポンスの`failedVersions`マップに含まれます。ひとつのバージョンが失敗した場合、`update-package-versions-status`への同じ呼び出しで指定された他のバージョンがスキップされ、ステータスが更新されない可能性があります。このようなバージョンは、`SKIPPED`の`errorCode`で`failedVersions`マップにも含まれます。

`update-package-versions-status`の現在の実装では、ひとつ以上のバージョンがステータスを変更できない場合、他のすべてのバージョンはスキップされます。つまり、すべてのバージョンが正常に更新されるか、すべてのバージョンが更新されないかです。この動作は API コントラクトでは保証されません。将来的には、一部のバージョンは成功し、他のバージョンは`update-package-versions-status`への 一度の呼び出しで失敗する可能性があります。

次のコマンドの例には、パッケージバージョンのリビジョンの不一致によるバージョンステータス更新の失敗が含まれます。この更新に障害があると、別のバージョンステータス更新の呼び出しがスキップされます。

```
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
```

サンプル出力:

```
{
    "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="
        }
    }
}
```

## パッケージバージョンの廃棄
<a name="dispose-package-versions"></a>

`Disposed`パッケージのステータスは、`Archived`と同様の動作をします。ただし、パッケージアセットは CodeArtifact によって完全に削除されるため、ドメイン所有者のアカウントがアセットストレージに対してこれ以降請求されなくなります。各パッケージバージョンのステータスの詳細については、「[パッケージバージョンのステータス](packages-overview.md#package-version-status)」を参照してください。パッケージバージョンのステータスを`Disposed`に変更するには、`dispose-package-versions`コマンドを使用してください。この機能は`update-package-versions-status`とは別個のものです。それは、パッケージバージョンの破棄が可逆的なものでないからです。パッケージアセットが削除されるため、バージョンのステータスを`Archived`、`Unlisted`、または`Published`に戻すことはできません。廃棄されたパッケージバージョンに対して実行できる唯一のアクションは、`delete-package-versions`コマンドを使用して削除することだけです。

`dispose-package-versions` の呼び出しに成功するには、呼び出し IAM プリンシパルがパッケージリソースに対する `codeartifact:DisposePackageVersions` 権限を持っている必要があります。

`dispose-package-versions` コマンドの動作は、`update-package-versions-status` と同様であり、[バージョンリビジョン](#update-status-specify-package-version-revision)および[予期されるステータス](#using-expected-status)のセクションで説明されている `--version-revisions ` および `--expected-status` のオプションの動作も含まれます。例えば、次のコマンドはパッケージバージョンを破棄しようとしますが、予期されるステータスが一致しないために失敗します。

```
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
```

サンプル出力:

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

同じコマンドを`Published`の`--expected-status`で再び実行すれば、破棄は成功します。

```
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
```

サンプル出力:

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