パッケージバージョンのステータスの更新 - CodeArtifact

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

パッケージバージョンのステータスの更新

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

注記

使用可能なステータスのリストを含む、パッケージバージョンのステータスの詳細については、パッケージバージョンのステータスを参照してください。

パッケージバージョンのステータスの更新

パッケージバージョンのステータスを設定することで、そのパッケージバージョンをリポジトリから完全に削除することなく、使用方法をコントロールできます。例えば、パッケージバージョンのステータスがUnlistedの場合、通常どおりダウンロードすることはできますが、npm viewのようなコマンドに戻されたパッケージバージョンリストには表示されません。UpdatePackageVersionsStatus API では、1 回のAPI呼び出しで同じパッケージの複数のバージョンのパッケージバージョンステータスを設定できます。さまざまなステータスの説明については、パッケージの概要を参照してください。

update-package-versions-statusコマンドを使用して、パッケージバージョンのステータスをPublishedUnlisted、またはArchivedに変更します コマンドを使用するために必要なIAMアクセス許可を確認するには、「」を参照してくださいパッケージバージョンのステータスを更新するために必要な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アクセス許可

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

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

スコープ指定された npm パッケージのステータスの更新

スコープを使用して 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 パッケージのステータスの更新

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

パッケージバージョンリビジョンの指定

パッケージバージョンリビジョンは、パッケージバージョンの特定のアセットとメタデータのセットを指定する文字列です。パッケージバージョンリビジョンを指定して、特定の状態にあるパッケージバージョンを更新できます。パッケージバージョンのリビジョンを指定するには、--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に渡されたバージョンと同じである必要があります。リビジョンが正しく指定されていない場合、そのバージョンのステータスは更新されません。

期待されるステータスパラメータの使用

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

例えば、my_repo、npm パッケージのバージョン 4.0.0 および 4.1.0 chalkは現在、 ステータスですPublishedUnlistedの期待されるステータスを指定する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" } } }

個々のパッケージバージョンでのエラー

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

update-package-versions-statusの現在の実装では、ひとつ以上のバージョンがステータスを変更できない場合、他のすべてのバージョンはスキップされます。つまり、すべてのバージョンが正常に更新されるか、すべてのバージョンが更新されないかです。この動作はAPI契約では保証されません。将来、一部のバージョンは成功し、他のバージョンは への 1 回の呼び出しで失敗する可能性があります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=" } } }

パッケージバージョンの廃棄

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

dispose-package-versions正常に呼び出すには、呼び出し元のIAMプリンシパルにパッケージリソースに対するcodeartifact:DisposePackageVersionsアクセス許可が必要です。

dispose-package-versionsコマンドの動作は、update-package-versions-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": {} }