翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
パッケージバージョンのステータスの更新
CodeArtifact のすべてのパッケージバージョンには、パッケージバージョンの現在の状態と使用可用性を示すステータスがあります。パッケージバージョンのステータスは、 AWS CLI と コンソールの両方を使用して変更できます。
注記
使用可能なステータスのリストを含む、パッケージバージョンのステータスの詳細については、パッケージバージョンのステータスを参照してください。
パッケージバージョンのステータスの更新
パッケージバージョンのステータスを設定することで、そのパッケージバージョンをリポジトリから完全に削除することなく、使用方法をコントロールできます。例えば、パッケージバージョンのステータスがUnlistedの場合、通常どおりダウンロードすることはできますが、npm viewのようなコマンドに戻されたパッケージバージョンリストには表示されません。[パッケージのバージョンステータスのアップロード API] では、単一の API コールで、同じパッケージの複数のバージョンのパッケージバージョンステータスを設定することができます。さまざまなステータスの説明については、パッケージの概要を参照してください。
update-package-versions-statusコマンドを使用して、パッケージバージョンのステータスをPublished、Unlisted、またはArchivedに変更します コマンドを使用するために必要な IAM 権限を要求するには、パッケージバージョンのステータスを更新するために必要な IAM 権限を参照してください。次の例では、npm パッケージchalkのバージョン 4.1.0 のステータスをArchivedに設定します。
aws codeartifact update-package-versions-status --domainmy_domain--domain-owner111122223333--repositorymy_repo--formatnpm--packagechalk--versions4.1.0--target-statusArchived
サンプル出力:
{ "successfulVersions": { "4.1.0": { "revision": "+Oz8skWbwY3k8M6SrNIqNj6bVH/ax+CxvkJx+No5j8I=", "status": "Archived" } }, "failedVersions": {} }
この例では、npm パッケージを使用しますが、このコマンドは他の形式でも同じように機能します。ひとつのコマンドを使用して、複数のバージョンを同じターゲットステータスに移動できます。次の例を参照してください。
aws codeartifact update-package-versions-status --domainmy_domain--domain-owner111122223333--repositorymy_repo--formatnpm--packagechalk--versions4.1.0 4.1.1--target-statusArchived
サンプル出力:
{ "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 ポリシーには、次のようなステートメントが含まれます。
{ "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 --domainmy_domain--domain-owner111122223333--repositorymy_repo--formatnpm--namespacenestjs--packagecore--versions8.0.0--target-statusUnlisted
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 --domainmy_domain--domain-owner111122223333--repositorymy_repo--formatmaven--namespaceorg.apache.logging.log4j--packagelog4j--versions2.13.1--target-statusArchived
パッケージバージョンリビジョンの指定
パッケージバージョンリビジョンは、パッケージバージョンの特定のアセットとメタデータのセットを指定する文字列です。パッケージバージョンリビジョンを指定して、特定の状態にあるパッケージバージョンを更新できます。パッケージバージョンのリビジョンを指定するには、--version-revisions パラメータを使用して、ひとつ以上のカンマ区切りパッケージバージョンとパッケージバージョンリビジョンのペアを渡します。パッケージバージョンのステータスは、パッケージバージョンの現在のリビジョンが指定された値と一致する場合にのみ更新されます。
注記
--version-revisionsパラメータを使用する場合、—-versionsパラメータも定義する必要があります。
aws codeartifact update-package-versions-status --domainmy_domain--domain-owner111122223333--repositorymy_repo--formatnpm--packagechalk--version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8bzVMJ4=" --versions4.1.0--target-statusArchived
ひとつのコマンドで複数のバージョンを更新するには、バージョンのカンマ区切りリストとバージョンリビジョンのペアを--version-revisionsオプションに渡します。次のコマンドの例では、二つの異なるパッケージバージョンとパッケージバージョンのリビジョンのペアを定義します。
aws codeartifact update-package-versions-status --domainmy_domain--domain-owner111122223333--repositorymy_repo--formatnpm--packagechalk--version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=,4.0.0=E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=" --versions4.1.0 4.0.0--target-statusPublished
サンプル出力:
{ "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 パッケージchalkのバージョン 4.0.0 および 4.1.0 には、現在Publishedのステータスがあります。Unlistedの期待されるステータスを指定するupdate-package-versions-statusへの呼び出しは、ステータスが一致しないため、両方のパッケージバージョンの更新ができません。
aws codeartifact update-package-versions-status --domainmy_domain--domain-owner111122223333--repositorymy_repo--formatnpm--packagechalk--versions4.1.0 4.0.0--target-statusArchived--expected-statusUnlisted
サンプル出力:
{ "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への同じ呼び出しで指定された他のバージョンがスキップされ、ステータスが更新されない可能性があります。このようなバージョンは、SKIPPEDのerrorCodeでfailedVersionsマップにも含まれます。
update-package-versions-statusの現在の実装では、ひとつ以上のバージョンがステータスを変更できない場合、他のすべてのバージョンはスキップされます。つまり、すべてのバージョンが正常に更新されるか、すべてのバージョンが更新されないかです。この動作は API コントラクトでは保証されません。将来的には、一部のバージョンは成功し、他のバージョンはupdate-package-versions-statusへの 一度の呼び出しで失敗する可能性があります。
次のコマンドの例には、パッケージバージョンのリビジョンの不一致によるバージョンステータス更新の失敗が含まれます。この更新に障害があると、別のバージョンステータス更新の呼び出しがスキップされます。
aws codeartifact update-package-versions-status --domainmy_domain--domain-owner111122223333--repositorymy_repo--formatnpm--packagechalk--version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ=,4.0.0=E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=" --versions4.1.0 4.0.0--target-statusArchived
サンプル出力:
{ "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とは別個のものです。それは、パッケージバージョンの破棄が可逆的なものでないからです。パッケージアセットが削除されるため、バージョンのステータスをArchived、Unlisted、または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 —domainmy_domain--domain-owner111122223333--repositorymy_repo--formatnpm--packagechalk--versions4.0.0--expected-statusUnlisted
サンプル出力:
{ "successfulVersions": {}, "failedVersions": { "4.0.0": { "errorCode": "MISMATCHED_STATUS", "errorMessage": "current status: Published, expected status: Unlisted" } } }
同じコマンドをPublishedの--expected-statusで再び実行すれば、破棄は成功します。
aws codeartifact dispose-package-versions —domainmy_domain--domain-owner111122223333--repositorymy_repo--formatnpm--packagechalk--versions4.0.0--expected-statusPublished
サンプル出力:
{ "successfulVersions": { "4.0.0": { "revision": "E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=", "status": "Disposed" } }, "failedVersions": {} }