기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
패키지 버전 상태 업데이트
in CodeArtifact 의 모든 패키지 버전에는 패키지 버전의 현재 상태와 가용성을 설명하는 상태가 있습니다. AWS CLI 및 콘솔을 모두 사용하여 패키지 버전 상태를 변경할 수 있습니다.
참고
사용 가능한 상태 목록을 포함한 패키지 버전 상태에 대한 자세한 내용은 패키지 버전 상태 섹션을 참조하세요.
패키지 버전 상태 업데이트
패키지 버전의 상태를 설정하면 리포지토리에서 패키지 버전을 완전히 삭제하지 않고도 패키지 버전 사용 방법을 제어할 수 있습니다. 예를 들어 패키지 버전의 상태가 Unlisted
라면 정상적으로 다운로드할 수는 있지만, npm view
같은 명령으로 반환되는 패키지 버전 목록에 표시되지는 않습니다. UpdatePackageVersionsStatus APIWord를 사용하면 단일 API 호출에서 동일한 패키지의 여러 버전의 패키지 버전 상태를 설정할 수 있습니다. 다양한 상태에 대한 설명은 패키지 개요 섹션을 참조하세요.
update-package-versions-status
명령을 사용하여 패키지 버전의 상태를 Published
, Unlisted
또는 Archived
로 변경합니다. 명령을 사용하는 데 필요한 IAM 권한을 보려면 섹션을 참조하세요패키지 버전 상태를 업데이트하는 데 필요한 IAM 권한. 다음 예제는 npm 패키지 chalk
버전 4.1.0의 상태를 Archived
로 설정합니다.
aws codeartifact update-package-versions-status --domain
my_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 --domain
my_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 정책 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-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 --domain
my_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 --domain
my_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 --domain
my_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 패키지의 버전 4.0.0 및 4.1.0은 chalk
현재 상태가 입니다Published
. 예상 상태를 Unlisted
로 지정하는 update-package-versions-status
를 호출하면, 상태 불일치 때문에 두 패키지 버전 모두가 업데이트되지 않습니다.
aws codeartifact update-package-versions-status --domain
my_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 --domain
my_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
패키지 상태는 도메인 소유자의 계정에 더 이상 자산 스토리지에 대한 요금이 청구되지 않도록 CodeArtifact 에서 패키지 자산을 영구적으로 삭제한다는 점을 Archived
제외하고와 유사한 동작입니다. 각 패키지 버전 상태에 대한 자세한 내용은 패키지 버전 상태 섹션을 참조하십시오. 패키지 버전의 상태를 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 —domain
my_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" } } }
--expected-status
를 Published
로 하여 동일한 명령을 다시 실행하면 폐기에 성공하게 됩니다.
aws codeartifact dispose-package-versions —domain
my_domain
--domain-owner111122223333
--repositorymy_repo
--formatnpm
--packagechalk
--versions4.0.0
--expected-statusPublished
샘플 출력:
{ "successfulVersions": { "4.0.0": { "revision": "E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=", "status": "Disposed" } }, "failedVersions": {} }