이 페이지에서는 Artifact Registry 표준 저장소를 만드는 방법을 설명합니다.
표준 저장소는 비공개 아티팩트의 저장소입니다. 이러한 저장소에 아티팩트를 직접 업로드하고 다운로드합니다.
일부 아티팩트 형식에는 다음 저장소 모드도 사용할 수 있습니다.
- 원격 저장소는 Docker Hub, Maven Central, PyPI와 같은 외부 소스의 아티팩트를 저장합니다.
- 가상 저장소는 업스트림 표준 또는 원격 저장소에 있는 아티팩트를 다운로드, 설치, 배포하는 단일 액세스 포인트로 작동합니다.
각 저장소에는 지원되는 단일 형식의 아티팩트가 포함될 수 있습니다.
시작하기 전에
- Artifact Registry API 사용 설정 및 Google Cloud CLI 설치를 포함하여 Artifact Registry를 사용 설정합니다.
- (선택사항) gcloud 명령어의 기본값을 구성합니다.
- 저장소 콘텐츠를 암호화하는 데 고객 관리 암호화 키(CMEK)가 필요한 경우 저장소의 Cloud KMS에 키를 만들고 사용 설정합니다.
필요한 역할
저장소를 만드는 데 필요한 권한을 얻으려면 관리자에게 Google Cloud 프로젝트에 대한 Artifact Registry 관리자(roles/artifactregistry.admin
) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
표준 저장소 만들기
저장소를 만들 때는 다음 설정을 구성해야 하며 이 설정은 저장소가 생성된 후에는 변경할 수 없습니다.
- 아티팩트 형식
- 선택한 형식으로 여러 모드를 사용할 수 있는 경우 저장소 모드
- 저장소 위치
- Google 소유 및 Google 관리 키 또는 고객 관리 암호화 키로 암호화. Artifact Registry는 기본적으로 Google 소유 및 Google 관리 암호화 키를 사용합니다.
Artifact Registry는 CMEK가 리소스를 암호화하도록 요구하거나 CMEK 보호에 사용할 수 있는 Cloud KMS 키를 제한하는 조직 정책 제약조건을 적용합니다.
Google Cloud 콘솔을 사용하여 저장소 만들기
Google Cloud 콘솔에서 저장소 페이지를 엽니다.
저장소 만들기를 클릭합니다.
저장소 이름을 지정합니다. 프로젝트의 저장소 위치마다 저장소 이름이 고유해야 합니다.
저장소 형식을 선택합니다.
저장소 모드를 여러 개 사용할 수 있는 경우 표준을 선택합니다.
Maven만 해당: 버전 정책을 구성합니다.
버전 정책을 선택합니다.
- 없음 - 버전 정책이 없습니다. 출시 및 스냅샷 패키지를 모두 저장합니다.
- 출시 - 출시 패키지만 저장합니다.
- 스냅샷 - 스냅샷 패키지만 저장합니다.
스냅샷 저장소가 저장소의 기존 버전을 덮어쓰는 고유하지 않은 스냅샷을 수락하도록 하려면 스냅샷 덮어쓰기 허용을 선택합니다.
위치 유형에서 저장소의 위치를 선택합니다.
위치 유형(리전 또는 멀티 리전)을 선택합니다. 선택 사항이 반영되도록 위치 목록이 변경됩니다.
리전 또는 멀티 리전 목록에서 위치를 선택합니다.
위치 유형 및 지원되는 위치에 대한 자세한 내용은 저장소 위치를 참조하세요.
저장소에 대한 설명을 추가합니다. 설명은 저장소의 용도와 저장소에 포함된 아티팩트의 종류를 식별하는 데 도움이 됩니다.
저장소 설명은 암호화되지 않으므로 민감한 정보는 포함하지 마세요.
라벨을 사용하여 저장소를 구성하려면 라벨 추가를 클릭하고 라벨의 키-값 쌍을 입력합니다. 저장소를 만든 후 라벨을 추가, 수정 또는 삭제할 수 있습니다.
암호화 섹션에서 저장소의 암호화 메커니즘을 선택합니다.
- Google 관리 키 - Google 소유 및 Google 관리 키로 저장소 콘텐츠를 암호화합니다.
고객 관리 키 - Cloud Key Management Service를 통해 제어하는 키로 저장소 콘텐츠를 암호화합니다. 키 설정 안내는 저장소의 CMEK 설정을 참조하세요.
Docker 저장소의 경우 변경할 수 없는 이미지 태그 설정이 항상 동일한 이미지 다이제스트를 가리키는 이미지 태그를 사용하도록 저장소를 구성합니다. Artifact Registry 관리자 역할이 있는 사용자는 저장소가 생성된 후 이 설정을 변경할 수 있습니다.
- 이 설정은 기본적으로 사용 중지되어 있습니다. 이미지 태그는 변경 가능하므로 태그가 가리키는 이미지 다이제스트가 변경될 수 있습니다.
- 이 설정을 사용 설정하면 이미지 태그를 변경할 수 없습니다. 태그는 항상 동일한 이미지 다이제스트를 가리켜야 합니다. 변경 가능한 이미지 태그와 변경할 수 없는 이미지 태그에 대한 자세한 내용은 컨테이너 이미지 버전을 참조하세요.
삭제 정책을 사용하여 사용되지 않는 아티팩트를 삭제하려면 삭제 정책 섹션에서 다음을 수행합니다.
- 정책을 적용하기 전에 테스트 실행을 선택하여 정책을 테스트합니다.
- 정책 추가를 클릭하여 저장소에 유지 또는 삭제 정책을 추가합니다.
- 이름 필드에 삭제 정책을 설명하는 이름을 지정합니다.
정책 유형 섹션에서 다음 중 하나를 선택합니다.
- 조건부 삭제: 정의한 조건에 따라 아티팩트를 삭제합니다.
- 조건부 유지: 정의한 조건에 따라 아티팩트를 유지합니다.
최신 버전 유지: 패키지별로 설정된 최신 버전 수를 유지합니다.
삭제 정책에 대한 자세한 내용은 삭제 정책 구성을 참조하세요.
Artifact Analysis 섹션에서 취약점 스캔 설정을 선택합니다.
사용 설정됨: 이 저장소에서 스캔을 허용합니다. 프로젝트에서 Container Scanning API를 사용 설정해야 합니다.
Container Scanning API를 사용 설정하는 즉시 요금이 부과되기 시작합니다. 프로젝트에서 Container Scanning API를 사용 설정하면 모든 신규 및 기존 저장소에 취약점 스캔이 사용 설정됩니다. 이미지를 Artifact Registry로 푸시하면 Artifact Analysis에서 자동으로 스캔합니다.
사용 중지됨: 이 저장소에서 스캔을 방지합니다. 프로젝트에서 Container Scanning API가 사용 설정된 경우 다른 저장소에서 스캔이 계속되고 이 저장소는 제외됩니다.
취약점 스캔 옵션에 대한 자세한 내용은 자동 스캔 사용 설정 및 사용 중지를 참고하세요.
만들기를 클릭합니다.
Artifact Registry는 저장소를 만들고 이를 저장소 목록에 추가합니다.
저장소를 만든 후:
- 저장소에 대한 액세스 권한을 부여합니다.
저장소 인증을 위해 Docker, 패키지 관리자, 기타 타사 클라이언트를 구성합니다.
Google Cloud CLI를 사용하여 저장소 만들기
명령어를 실행하여 새 저장소를 만듭니다.
Apt
gcloud artifacts repositories create REPOSITORY \ --repository-format=apt \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
다음을 바꿉니다.
REPOSITORY
: 저장소의 이름입니다. 프로젝트의 저장소 위치마다 저장소 이름이 고유해야 합니다.LOCATION
: 저장소의리전 또는 멀티 리전위치입니다. 기본값을 설정하는 경우 이 플래그를 생략할 수 있습니다. 지원되는 위치 목록을 보려면 다음 명령어를 실행합니다.gcloud artifacts locations list
DESCRIPTION
: 저장소에 대한 설명입니다. 저장소 설명은 암호화되지 않으므로 민감한 정보는 포함하지 마세요.KMS-KEY
: 고객 관리 암호화 키를 사용하여 저장소 콘텐츠를 암호화하는 경우 Cloud KMS 암호화 키의 전체 경로입니다. 경로 형식은 다음과 같습니다.projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
다음을 바꿉니다.
KMS-PROJECT
: 키가 저장된 프로젝트입니다.KMS-LOCATION
: 키의 위치입니다.KEY-RING
: 키링의 이름입니다.KEY
: 키의 이름입니다.
--async
는 진행 중인 작업이 완료되기를 기다리지 않고 즉시 반환합니다.
Docker
gcloud artifacts repositories create REPOSITORY \
--repository-format=docker \
--location=LOCATION \
--description="DESCRIPTION" \
--kms-key=KMS-KEY \
--immutable-tags \
--async \
--disable-vulnerability-scanning
다음을 바꿉니다.
REPOSITORY
: 저장소의 이름입니다. 프로젝트의 저장소 위치마다 저장소 이름이 고유해야 합니다.LOCATION
: 저장소의 리전 위치입니다. 기본 위치를 설정하는 경우 이 플래그를 생략할 수 있습니다. 지원되는 위치 목록을 보려면 다음 명령어를 실행합니다.gcloud artifacts locations list
DESCRIPTION
: 저장소에 대한 설명입니다. 저장소 설명은 암호화되지 않으므로 민감한 정보는 포함하지 마세요.KMS-KEY
: 고객 관리 암호화 키를 사용하여 저장소 콘텐츠를 암호화하는 경우 Cloud KMS 암호화 키의 전체 경로입니다. 경로 형식은 다음과 같습니다.projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
다음을 바꿉니다.
KMS-PROJECT
: 키가 저장된 프로젝트입니다.KMS-LOCATION
: 키의 위치입니다.KEY-RING
: 키링의 이름입니다.KEY
: 키의 이름입니다.
--immutable-tags
는 항상 동일한 이미지 다이제스트를 가리키는 태그를 사용하도록 저장소를 구성하는 선택적 플래그입니다.기본적으로
--immutable-tags
플래그가 전달되지 않으면 태그가 다른 이미지 다이제스트로 이동할 수 있습니다. 변경할 수 없는 이미지 태그와 변경 가능한 이미지 태그에 대한 자세한 내용은 컨테이너 이미지 버전을 참조하세요.--async
는 진행 중인 작업이 완료되기를 기다리지 않고 즉시 반환합니다.
--disable-vulnerability-scanning
: 자동 취약점 스캔을 사용 중지하도록 저장소를 구성하는 선택적 플래그입니다.--allow-vulnerability-scanning
: 자동 취약점 스캔을 허용하도록 저장소를 구성하는 선택적 플래그입니다. 자세한 내용은 자동 스캔 사용 설정 또는 중지를 참고하세요.
일반
gcloud artifacts repositories create REPOSITORY \ --repository-format=generic \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
다음을 바꿉니다.
REPOSITORY
: 저장소의 이름입니다. 프로젝트의 저장소 위치마다 저장소 이름이 고유해야 합니다.LOCATION
: 저장소의리전 또는 멀티 리전위치입니다. 기본값을 설정하는 경우 이 플래그를 생략할 수 있습니다. 지원되는 위치 목록을 보려면 다음 명령어를 실행합니다.gcloud artifacts locations list
DESCRIPTION
: 저장소에 대한 설명입니다. 저장소 설명은 암호화되지 않으므로 민감한 정보는 포함하지 마세요.KMS-KEY
: 고객 관리 암호화 키를 사용하여 저장소 콘텐츠를 암호화하는 경우 Cloud KMS 암호화 키의 전체 경로입니다. 경로 형식은 다음과 같습니다.projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
다음을 바꿉니다.
KMS-PROJECT
: 키가 저장된 프로젝트입니다.KMS-LOCATION
: 키의 위치입니다.KEY-RING
: 키링의 이름입니다.KEY
: 키의 이름입니다.
--async
는 진행 중인 작업이 완료되기를 기다리지 않고 즉시 반환합니다.
Go
gcloud artifacts repositories create REPOSITORY \ --repository-format=go \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
다음을 바꿉니다.
REPOSITORY
: 저장소의 이름입니다. 프로젝트의 저장소 위치마다 저장소 이름이 고유해야 합니다.LOCATION
: 저장소의리전 또는 멀티 리전위치입니다. 기본값을 설정하는 경우 이 플래그를 생략할 수 있습니다. 지원되는 위치 목록을 보려면 다음 명령어를 실행합니다.gcloud artifacts locations list
DESCRIPTION
: 저장소에 대한 설명입니다. 저장소 설명은 암호화되지 않으므로 민감한 정보는 포함하지 마세요.KMS-KEY
: 고객 관리 암호화 키를 사용하여 저장소 콘텐츠를 암호화하는 경우 Cloud KMS 암호화 키의 전체 경로입니다. 경로 형식은 다음과 같습니다.projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
다음을 바꿉니다.
KMS-PROJECT
: 키가 저장된 프로젝트입니다.KMS-LOCATION
: 키의 위치입니다.KEY-RING
: 키링의 이름입니다.KEY
: 키의 이름입니다.
--async
는 진행 중인 작업이 완료되기를 기다리지 않고 즉시 반환합니다.
KubeFlow Pipelines
gcloud artifacts repositories create REPOSITORY \ --repository-format=kfp \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
다음을 바꿉니다.
REPOSITORY
: 저장소의 이름입니다. 프로젝트의 저장소 위치마다 저장소 이름이 고유해야 합니다.LOCATION
: 저장소의리전 또는 멀티 리전위치입니다. 기본값을 설정하는 경우 이 플래그를 생략할 수 있습니다. 지원되는 위치 목록을 보려면 다음 명령어를 실행합니다.gcloud artifacts locations list
DESCRIPTION
: 저장소에 대한 설명입니다. 저장소 설명은 암호화되지 않으므로 민감한 정보는 포함하지 마세요.KMS-KEY
: 고객 관리 암호화 키를 사용하여 저장소 콘텐츠를 암호화하는 경우 Cloud KMS 암호화 키의 전체 경로입니다. 경로 형식은 다음과 같습니다.projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
다음을 바꿉니다.
KMS-PROJECT
: 키가 저장된 프로젝트입니다.KMS-LOCATION
: 키의 위치입니다.KEY-RING
: 키링의 이름입니다.KEY
: 키의 이름입니다.
--async
는 진행 중인 작업이 완료되기를 기다리지 않고 즉시 반환합니다.
Maven
기본적으로 Maven 저장소는 패키지의 스냅샷 및 출시 버전을 모두 저장합니다. 스냅샷 또는 출시 저장소를 생성할 버전 정책을 지정할 수 있습니다.
스냅샷과 출시 버전을 저장하는 저장소를 만들려면 다음 명령어를 실행합니다.
gcloud artifacts repositories create REPOSITORY \ --repository-format=maven \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
다음을 바꿉니다.
REPOSITORY
: 저장소의 이름입니다. 프로젝트의 저장소 위치마다 저장소 이름이 고유해야 합니다.LOCATION
: 저장소의리전 또는 멀티 리전위치입니다. 기본값을 설정하는 경우 이 플래그를 생략할 수 있습니다. 지원되는 위치 목록을 보려면 다음 명령어를 실행합니다.gcloud artifacts locations list
DESCRIPTION
: 저장소에 대한 설명입니다. 저장소 설명은 암호화되지 않으므로 민감한 정보는 포함하지 마세요.KMS-KEY
: 고객 관리 암호화 키를 사용하여 저장소 콘텐츠를 암호화하는 경우 Cloud KMS 암호화 키의 전체 경로입니다. 경로 형식은 다음과 같습니다.projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
다음을 바꿉니다.
KMS-PROJECT
: 키가 저장된 프로젝트입니다.KMS-LOCATION
: 키의 위치입니다.KEY-RING
: 키링의 이름입니다.KEY
: 키의 이름입니다.
--async
는 진행 중인 작업이 완료되기를 기다리지 않고 즉시 반환합니다.스냅샷과 출시 버전을 서로 다른 저장소에 저장하려면 명령어에 버전 정책을 지정합니다.
gcloud artifacts repositories create REPOSITORY \ --repository-format=maven \ [--location=LOCATION] \ [--description="DESCRIPTION"] \ [--kms-key=KMS-KEY] \ [--version-policy=VERSION-POLICY] \ [--allow-snapshot-overwrites] \ [--async] \
다음 플래그는 Maven 저장소에만 적용됩니다.
--version-policy=VERSION-POLICY
- 저장소에 저장할 패키지 유형을 지정합니다. VERSION-POLICY를 다음과 같이 설정할 수 있습니다.
None
- 버전 정책이 없습니다. 출시 및 스냅샷 패키지를 모두 저장합니다. 명령어에--version-policy
플래그를 포함하지 않으면 기본 설정입니다.Release
- 출시 패키지만 저장합니다.Snapshot
- 스냅샷 패키지만 저장합니다.
--allow-snapshot-overwrites
- 스냅샷 저장소에만 해당됩니다. 이 플래그를 지정하면 저장소의 기존 버전을 덮어쓰는 고유하지 않은 스냅샷을 게시할 수 있습니다.
npm
gcloud artifacts repositories create REPOSITORY \ --repository-format=npm \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
다음을 바꿉니다.
REPOSITORY
: 저장소의 이름입니다. 프로젝트의 저장소 위치마다 저장소 이름이 고유해야 합니다.LOCATION
: 저장소의리전 또는 멀티 리전위치입니다. 기본값을 설정하는 경우 이 플래그를 생략할 수 있습니다. 지원되는 위치 목록을 보려면 다음 명령어를 실행합니다.gcloud artifacts locations list
DESCRIPTION
: 저장소에 대한 설명입니다. 저장소 설명은 암호화되지 않으므로 민감한 정보는 포함하지 마세요.KMS-KEY
: 고객 관리 암호화 키를 사용하여 저장소 콘텐츠를 암호화하는 경우 Cloud KMS 암호화 키의 전체 경로입니다. 경로 형식은 다음과 같습니다.projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
다음을 바꿉니다.
KMS-PROJECT
: 키가 저장된 프로젝트입니다.KMS-LOCATION
: 키의 위치입니다.KEY-RING
: 키링의 이름입니다.KEY
: 키의 이름입니다.
--async
는 진행 중인 작업이 완료되기를 기다리지 않고 즉시 반환합니다.
Python
gcloud artifacts repositories create REPOSITORY \ --repository-format=python \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
다음을 바꿉니다.
REPOSITORY
: 저장소의 이름입니다. 프로젝트의 저장소 위치마다 저장소 이름이 고유해야 합니다.LOCATION
: 저장소의리전 또는 멀티 리전위치입니다. 기본값을 설정하는 경우 이 플래그를 생략할 수 있습니다. 지원되는 위치 목록을 보려면 다음 명령어를 실행합니다.gcloud artifacts locations list
DESCRIPTION
: 저장소에 대한 설명입니다. 저장소 설명은 암호화되지 않으므로 민감한 정보는 포함하지 마세요.KMS-KEY
: 고객 관리 암호화 키를 사용하여 저장소 콘텐츠를 암호화하는 경우 Cloud KMS 암호화 키의 전체 경로입니다. 경로 형식은 다음과 같습니다.projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
다음을 바꿉니다.
KMS-PROJECT
: 키가 저장된 프로젝트입니다.KMS-LOCATION
: 키의 위치입니다.KEY-RING
: 키링의 이름입니다.KEY
: 키의 이름입니다.
--async
는 진행 중인 작업이 완료되기를 기다리지 않고 즉시 반환합니다.
Yum
gcloud artifacts repositories create REPOSITORY \ --repository-format=yum \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
다음을 바꿉니다.
REPOSITORY
: 저장소의 이름입니다. 프로젝트의 저장소 위치마다 저장소 이름이 고유해야 합니다.LOCATION
: 저장소의리전 또는 멀티 리전위치입니다. 기본값을 설정하는 경우 이 플래그를 생략할 수 있습니다. 지원되는 위치 목록을 보려면 다음 명령어를 실행합니다.gcloud artifacts locations list
DESCRIPTION
: 저장소에 대한 설명입니다. 저장소 설명은 암호화되지 않으므로 민감한 정보는 포함하지 마세요.KMS-KEY
: 고객 관리 암호화 키를 사용하여 저장소 콘텐츠를 암호화하는 경우 Cloud KMS 암호화 키의 전체 경로입니다. 경로 형식은 다음과 같습니다.projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
다음을 바꿉니다.
KMS-PROJECT
: 키가 저장된 프로젝트입니다.KMS-LOCATION
: 키의 위치입니다.KEY-RING
: 키링의 이름입니다.KEY
: 키의 이름입니다.
--async
는 진행 중인 작업이 완료되기를 기다리지 않고 즉시 반환합니다.
Artifact Registry가 저장소를 만듭니다. 다음 명령어를 실행하여 저장소에 대한 설명을 봅니다.
gcloud artifacts repositories describe REPOSITORY \
--location=LOCATION
저장소를 만든 후:
- 저장소에 대한 액세스 권한을 부여합니다.
- 삭제 정책을 구성하여 사용되지 않는 아티팩트를 삭제합니다.
저장소 인증을 위해 Docker, 패키지 관리자, 기타 타사 클라이언트를 구성합니다.
Terraform을 사용하여 저장소 만들기
google_artifact_registry_repository 리소스를 사용하여 저장소를 만듭니다.
terraform-provider-google
버전 5.0.0
이상이 필요합니다.
Google Cloud에서 Terraform을 처음 사용하는 경우 HashiCorp 웹사이트의 시작하기 - Google Cloud 페이지를 참조하세요.
다음 예시에서는 Terraform 리소스 이름이 my-repo
인 제공업체와 저장소를 정의합니다.
Apt
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "apt" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
다음을 바꿉니다.
PROJECT-ID
는 Google Cloud 프로젝트 ID입니다.LOCATION
: 저장소 위치REPOSITORY
: 저장소 이름DESCRIPTION
: 저장소 설명(선택사항). 저장소 설명은 암호화되지 않으므로 민감한 정보는 포함하지 마세요.KEY
: 암호화에 고객 관리 암호화 키(CMEK)를 사용하는 경우 Cloud Key Management Service 키의 이름. 기본 설정인 Google 관리 암호화 키를 사용하려면 이 인수를 생략합니다.DRY_RUN_STATUS
: 삭제 정책이 아티팩트를 삭제할지 여부를 결정하거나 저장소에서 삭제 정책을 설정하는 경우 삭제될 아티팩트만 로깅합니다. 저장소에 삭제 정책을 추가하지 않으려면 생략합니다.true
: 테스트 실행 모드에서 실행되도록 정책을 설정합니다. 테스트 실행 모드에서는 아티팩트가 삭제되지 않습니다.false
: 삭제 정책을 적용합니다. 아티팩트는 정책에 따라 삭제되거나 유지됩니다.
삭제 정책에 대한 자세한 내용은 삭제 정책 구성을 참조하세요.
POLICY_NAME
: 삭제 정책의 이름TAG_STATE
: 정책을 적용할 태그 상태입니다. 값은tagged
,untagged
,any
입니다.any
는 태그가 지정된 아티팩트와 태그가 지정되지 않은 아티팩트 모두에 적용됩니다. 저장소에 변경할 수 없는 태그가 사용 설정된 경우 태그가 지정된 아티팩트를 삭제할 수 없습니다.TAG_PREFIX
,TAG_PREFIX_N
: 정책을 적용할 태그 프리픽스PKG_PREFIX
,PKG_PREFIX_N
: 정책을 적용할 패키지 프리픽스TIME_SINCE_UPLOAD
: 아티팩트 버전이 저장소에 업로드된 이후의 시간(기간). 각각s
,m
,h
,d
를 추가하여 초, 분, 시간, 일로 기간을 지정할 수 있습니다.KEEP_COUNT
는 저장소에 유지할 아티팩트 버전의 수입니다.
Docker
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "docker" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
다음을 바꿉니다.
PROJECT-ID
는 Google Cloud 프로젝트 ID입니다.LOCATION
: 저장소 위치REPOSITORY
: 저장소 이름DESCRIPTION
: 저장소 설명(선택사항). 저장소 설명은 암호화되지 않으므로 민감한 정보는 포함하지 마세요.KEY
: 암호화에 고객 관리 암호화 키(CMEK)를 사용하는 경우 Cloud Key Management Service 키의 이름. 기본 설정인 Google 관리 암호화 키를 사용하려면 이 인수를 생략합니다.DRY_RUN_STATUS
: 삭제 정책이 아티팩트를 삭제할지 여부를 결정하거나 저장소에서 삭제 정책을 설정하는 경우 삭제될 아티팩트만 로깅합니다. 저장소에 삭제 정책을 추가하지 않으려면 생략합니다.true
: 테스트 실행 모드에서 실행되도록 정책을 설정합니다. 테스트 실행 모드에서는 아티팩트가 삭제되지 않습니다.false
: 삭제 정책을 적용합니다. 아티팩트는 정책에 따라 삭제되거나 유지됩니다.
삭제 정책에 대한 자세한 내용은 삭제 정책 구성을 참조하세요.
POLICY_NAME
: 삭제 정책의 이름TAG_STATE
: 정책을 적용할 태그 상태입니다. 값은tagged
,untagged
,any
입니다.any
는 태그가 지정된 아티팩트와 태그가 지정되지 않은 아티팩트 모두에 적용됩니다. 저장소에 변경할 수 없는 태그가 사용 설정된 경우 태그가 지정된 아티팩트를 삭제할 수 없습니다.TAG_PREFIX
,TAG_PREFIX_N
: 정책을 적용할 태그 프리픽스PKG_PREFIX
,PKG_PREFIX_N
: 정책을 적용할 패키지 프리픽스TIME_SINCE_UPLOAD
: 아티팩트 버전이 저장소에 업로드된 이후의 시간(기간). 각각s
,m
,h
,d
를 추가하여 초, 분, 시간, 일로 기간을 지정할 수 있습니다.KEEP_COUNT
는 저장소에 유지할 아티팩트 버전의 수입니다.
Generic
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "generic" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
다음을 바꿉니다.
PROJECT-ID
는 Google Cloud 프로젝트 ID입니다.LOCATION
: 저장소 위치REPOSITORY
: 저장소 이름DESCRIPTION
: 저장소 설명(선택사항). 저장소 설명은 암호화되지 않으므로 민감한 정보는 포함하지 마세요.KEY
: 암호화에 고객 관리 암호화 키(CMEK)를 사용하는 경우 Cloud Key Management Service 키의 이름. 기본 설정인 Google 관리 암호화 키를 사용하려면 이 인수를 생략합니다.DRY_RUN_STATUS
: 삭제 정책이 아티팩트를 삭제할지 여부를 결정하거나 저장소에서 삭제 정책을 설정하는 경우 삭제될 아티팩트만 로깅합니다. 저장소에 삭제 정책을 추가하지 않으려면 생략합니다.true
: 테스트 실행 모드에서 실행되도록 정책을 설정합니다. 테스트 실행 모드에서는 아티팩트가 삭제되지 않습니다.false
: 삭제 정책을 적용합니다. 아티팩트는 정책에 따라 삭제되거나 유지됩니다.
삭제 정책에 대한 자세한 내용은 삭제 정책 구성을 참조하세요.
POLICY_NAME
: 삭제 정책의 이름TAG_STATE
: 정책을 적용할 태그 상태입니다. 값은tagged
,untagged
,any
입니다.any
는 태그가 지정된 아티팩트와 태그가 지정되지 않은 아티팩트 모두에 적용됩니다. 저장소에 변경할 수 없는 태그가 사용 설정된 경우 태그가 지정된 아티팩트를 삭제할 수 없습니다.TAG_PREFIX
,TAG_PREFIX_N
: 정책을 적용할 태그 프리픽스PKG_PREFIX
,PKG_PREFIX_N
: 정책을 적용할 패키지 프리픽스TIME_SINCE_UPLOAD
: 아티팩트 버전이 저장소에 업로드된 이후의 시간(기간). 각각s
,m
,h
,d
를 추가하여 초, 분, 시간, 일로 기간을 지정할 수 있습니다.KEEP_COUNT
는 저장소에 유지할 아티팩트 버전의 수입니다.
Go
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "go" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
다음을 바꿉니다.
PROJECT-ID
는 Google Cloud 프로젝트 ID입니다.LOCATION
: 저장소 위치REPOSITORY
: 저장소 이름DESCRIPTION
: 저장소 설명(선택사항). 저장소 설명은 암호화되지 않으므로 민감한 정보는 포함하지 마세요.KEY
: 암호화에 고객 관리 암호화 키(CMEK)를 사용하는 경우 Cloud Key Management Service 키의 이름. 기본 설정인 Google 관리 암호화 키를 사용하려면 이 인수를 생략합니다.DRY_RUN_STATUS
: 삭제 정책이 아티팩트를 삭제할지 여부를 결정하거나 저장소에서 삭제 정책을 설정하는 경우 삭제될 아티팩트만 로깅합니다. 저장소에 삭제 정책을 추가하지 않으려면 생략합니다.true
: 테스트 실행 모드에서 실행되도록 정책을 설정합니다. 테스트 실행 모드에서는 아티팩트가 삭제되지 않습니다.false
: 삭제 정책을 적용합니다. 아티팩트는 정책에 따라 삭제되거나 유지됩니다.
삭제 정책에 대한 자세한 내용은 삭제 정책 구성을 참조하세요.
POLICY_NAME
: 삭제 정책의 이름TAG_STATE
: 정책을 적용할 태그 상태입니다. 값은tagged
,untagged
,any
입니다.any
는 태그가 지정된 아티팩트와 태그가 지정되지 않은 아티팩트 모두에 적용됩니다. 저장소에 변경할 수 없는 태그가 사용 설정된 경우 태그가 지정된 아티팩트를 삭제할 수 없습니다.TAG_PREFIX
,TAG_PREFIX_N
: 정책을 적용할 태그 프리픽스PKG_PREFIX
,PKG_PREFIX_N
: 정책을 적용할 패키지 프리픽스TIME_SINCE_UPLOAD
: 아티팩트 버전이 저장소에 업로드된 이후의 시간(기간). 각각s
,m
,h
,d
를 추가하여 초, 분, 시간, 일로 기간을 지정할 수 있습니다.KEEP_COUNT
는 저장소에 유지할 아티팩트 버전의 수입니다.
KubeFlow Pipelines
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "kfp" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
다음을 바꿉니다.
PROJECT-ID
는 Google Cloud 프로젝트 ID입니다.LOCATION
: 저장소 위치REPOSITORY
: 저장소 이름DESCRIPTION
: 저장소 설명(선택사항). 저장소 설명은 암호화되지 않으므로 민감한 정보는 포함하지 마세요.KEY
: 암호화에 고객 관리 암호화 키(CMEK)를 사용하는 경우 Cloud Key Management Service 키의 이름. 기본 설정인 Google 관리 암호화 키를 사용하려면 이 인수를 생략합니다.DRY_RUN_STATUS
: 삭제 정책이 아티팩트를 삭제할지 여부를 결정하거나 저장소에서 삭제 정책을 설정하는 경우 삭제될 아티팩트만 로깅합니다. 저장소에 삭제 정책을 추가하지 않으려면 생략합니다.true
: 테스트 실행 모드에서 실행되도록 정책을 설정합니다. 테스트 실행 모드에서는 아티팩트가 삭제되지 않습니다.false
: 삭제 정책을 적용합니다. 아티팩트는 정책에 따라 삭제되거나 유지됩니다.
삭제 정책에 대한 자세한 내용은 삭제 정책 구성을 참조하세요.
POLICY_NAME
: 삭제 정책의 이름TAG_STATE
: 정책을 적용할 태그 상태입니다. 값은tagged
,untagged
,any
입니다.any
는 태그가 지정된 아티팩트와 태그가 지정되지 않은 아티팩트 모두에 적용됩니다. 저장소에 변경할 수 없는 태그가 사용 설정된 경우 태그가 지정된 아티팩트를 삭제할 수 없습니다.TAG_PREFIX
,TAG_PREFIX_N
: 정책을 적용할 태그 프리픽스PKG_PREFIX
,PKG_PREFIX_N
: 정책을 적용할 패키지 프리픽스TIME_SINCE_UPLOAD
: 아티팩트 버전이 저장소에 업로드된 이후의 시간(기간). 각각s
,m
,h
,d
를 추가하여 초, 분, 시간, 일로 기간을 지정할 수 있습니다.KEEP_COUNT
는 저장소에 유지할 아티팩트 버전의 수입니다.
Maven
버전 정책을 지정하지 않으면 Artifact Registry가 기본적으로 패키지의 스냅샷 및 출시 버전을 모두 저장하는 Maven 저장소를 만듭니다.
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "maven" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
다음을 바꿉니다.
PROJECT-ID
는 Google Cloud 프로젝트 ID입니다.LOCATION
: 저장소 위치REPOSITORY
: 저장소 이름DESCRIPTION
: 저장소 설명(선택사항). 저장소 설명은 암호화되지 않으므로 민감한 정보는 포함하지 마세요.KEY
: 암호화에 고객 관리 암호화 키(CMEK)를 사용하는 경우 Cloud Key Management Service 키의 이름. 기본 설정인 Google 관리 암호화 키를 사용하려면 이 인수를 생략합니다.DRY_RUN_STATUS
: 삭제 정책이 아티팩트를 삭제할지 여부를 결정하거나 저장소에서 삭제 정책을 설정하는 경우 삭제될 아티팩트만 로깅합니다. 저장소에 삭제 정책을 추가하지 않으려면 생략합니다.true
: 테스트 실행 모드에서 실행되도록 정책을 설정합니다. 테스트 실행 모드에서는 아티팩트가 삭제되지 않습니다.false
: 삭제 정책을 적용합니다. 아티팩트는 정책에 따라 삭제되거나 유지됩니다.
삭제 정책에 대한 자세한 내용은 삭제 정책 구성을 참조하세요.
POLICY_NAME
: 삭제 정책의 이름TAG_STATE
: 정책을 적용할 태그 상태입니다. 값은tagged
,untagged
,any
입니다.any
는 태그가 지정된 아티팩트와 태그가 지정되지 않은 아티팩트 모두에 적용됩니다. 저장소에 변경할 수 없는 태그가 사용 설정된 경우 태그가 지정된 아티팩트를 삭제할 수 없습니다.TAG_PREFIX
,TAG_PREFIX_N
: 정책을 적용할 태그 프리픽스PKG_PREFIX
,PKG_PREFIX_N
: 정책을 적용할 패키지 프리픽스TIME_SINCE_UPLOAD
: 아티팩트 버전이 저장소에 업로드된 이후의 시간(기간). 각각s
,m
,h
,d
를 추가하여 초, 분, 시간, 일로 기간을 지정할 수 있습니다.KEEP_COUNT
는 저장소에 유지할 아티팩트 버전의 수입니다.스냅샷과 출시 버전을 서로 다른 저장소에 저장하려면
maven_config
블록을 사용하여 저장소에 대해 버전 정책을 지정합니다. 이 블록은 다음 설정을 지원합니다.version_policy
는 다음 값 중 하나로 버전 정책을 설정합니다.VERSION_POLICY_UNSPECIFIED
: 스냅샷 및 출시 패키지를 저장합니다. 이는 기본 설정입니다.- 출시: 출시 패키지만 저장합니다.
- 스냅샷: 스냅샷 패키지만 저장합니다.
allow_snapshot_overwrites
는SNAPSHOT
버전 정책으로 저장소를 구성하여 저장소의 기존 버전을 덮어쓰는 고유하지 않은 스냅샷을 허용합니다.다음 예시에서는 출시 버전 정책으로 Maven 저장소를 정의합니다.
provider "google" { project = "my-project" } resource "google_artifact_registry_repository" "my-repo" { provider = google-beta location = "us-central1" repository_id = "my-repo" description = "Maven repository" format = "MAVEN" maven_config { version_policy = "RELEASE" } }
npm
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "npm" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
다음을 바꿉니다.
PROJECT-ID
는 Google Cloud 프로젝트 ID입니다.LOCATION
: 저장소 위치REPOSITORY
: 저장소 이름DESCRIPTION
: 저장소 설명(선택사항). 저장소 설명은 암호화되지 않으므로 민감한 정보는 포함하지 마세요.KEY
: 암호화에 고객 관리 암호화 키(CMEK)를 사용하는 경우 Cloud Key Management Service 키의 이름. 기본 설정인 Google 관리 암호화 키를 사용하려면 이 인수를 생략합니다.DRY_RUN_STATUS
: 삭제 정책이 아티팩트를 삭제할지 여부를 결정하거나 저장소에서 삭제 정책을 설정하는 경우 삭제될 아티팩트만 로깅합니다. 저장소에 삭제 정책을 추가하지 않으려면 생략합니다.true
: 테스트 실행 모드에서 실행되도록 정책을 설정합니다. 테스트 실행 모드에서는 아티팩트가 삭제되지 않습니다.false
: 삭제 정책을 적용합니다. 아티팩트는 정책에 따라 삭제되거나 유지됩니다.
삭제 정책에 대한 자세한 내용은 삭제 정책 구성을 참조하세요.
POLICY_NAME
: 삭제 정책의 이름TAG_STATE
: 정책을 적용할 태그 상태입니다. 값은tagged
,untagged
,any
입니다.any
는 태그가 지정된 아티팩트와 태그가 지정되지 않은 아티팩트 모두에 적용됩니다. 저장소에 변경할 수 없는 태그가 사용 설정된 경우 태그가 지정된 아티팩트를 삭제할 수 없습니다.TAG_PREFIX
,TAG_PREFIX_N
: 정책을 적용할 태그 프리픽스PKG_PREFIX
,PKG_PREFIX_N
: 정책을 적용할 패키지 프리픽스TIME_SINCE_UPLOAD
: 아티팩트 버전이 저장소에 업로드된 이후의 시간(기간). 각각s
,m
,h
,d
를 추가하여 초, 분, 시간, 일로 기간을 지정할 수 있습니다.KEEP_COUNT
는 저장소에 유지할 아티팩트 버전의 수입니다.
Python
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "python" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
다음을 바꿉니다.
PROJECT-ID
는 Google Cloud 프로젝트 ID입니다.LOCATION
: 저장소 위치REPOSITORY
: 저장소 이름DESCRIPTION
: 저장소 설명(선택사항). 저장소 설명은 암호화되지 않으므로 민감한 정보는 포함하지 마세요.KEY
: 암호화에 고객 관리 암호화 키(CMEK)를 사용하는 경우 Cloud Key Management Service 키의 이름. 기본 설정인 Google 관리 암호화 키를 사용하려면 이 인수를 생략합니다.DRY_RUN_STATUS
: 삭제 정책이 아티팩트를 삭제할지 여부를 결정하거나 저장소에서 삭제 정책을 설정하는 경우 삭제될 아티팩트만 로깅합니다. 저장소에 삭제 정책을 추가하지 않으려면 생략합니다.true
: 테스트 실행 모드에서 실행되도록 정책을 설정합니다. 테스트 실행 모드에서는 아티팩트가 삭제되지 않습니다.false
: 삭제 정책을 적용합니다. 아티팩트는 정책에 따라 삭제되거나 유지됩니다.
삭제 정책에 대한 자세한 내용은 삭제 정책 구성을 참조하세요.
POLICY_NAME
: 삭제 정책의 이름TAG_STATE
: 정책을 적용할 태그 상태입니다. 값은tagged
,untagged
,any
입니다.any
는 태그가 지정된 아티팩트와 태그가 지정되지 않은 아티팩트 모두에 적용됩니다. 저장소에 변경할 수 없는 태그가 사용 설정된 경우 태그가 지정된 아티팩트를 삭제할 수 없습니다.TAG_PREFIX
,TAG_PREFIX_N
: 정책을 적용할 태그 프리픽스PKG_PREFIX
,PKG_PREFIX_N
: 정책을 적용할 패키지 프리픽스TIME_SINCE_UPLOAD
: 아티팩트 버전이 저장소에 업로드된 이후의 시간(기간). 각각s
,m
,h
,d
를 추가하여 초, 분, 시간, 일로 기간을 지정할 수 있습니다.KEEP_COUNT
는 저장소에 유지할 아티팩트 버전의 수입니다.
Yum
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "yum" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
다음을 바꿉니다.
PROJECT-ID
는 Google Cloud 프로젝트 ID입니다.LOCATION
: 저장소 위치REPOSITORY
: 저장소 이름DESCRIPTION
: 저장소 설명(선택사항). 저장소 설명은 암호화되지 않으므로 민감한 정보는 포함하지 마세요.KEY
: 암호화에 고객 관리 암호화 키(CMEK)를 사용하는 경우 Cloud Key Management Service 키의 이름. 기본 설정인 Google 관리 암호화 키를 사용하려면 이 인수를 생략합니다.DRY_RUN_STATUS
: 삭제 정책이 아티팩트를 삭제할지 여부를 결정하거나 저장소에서 삭제 정책을 설정하는 경우 삭제될 아티팩트만 로깅합니다. 저장소에 삭제 정책을 추가하지 않으려면 생략합니다.true
: 테스트 실행 모드에서 실행되도록 정책을 설정합니다. 테스트 실행 모드에서는 아티팩트가 삭제되지 않습니다.false
: 삭제 정책을 적용합니다. 아티팩트는 정책에 따라 삭제되거나 유지됩니다.
삭제 정책에 대한 자세한 내용은 삭제 정책 구성을 참조하세요.
POLICY_NAME
: 삭제 정책의 이름TAG_STATE
: 정책을 적용할 태그 상태입니다. 값은tagged
,untagged
,any
입니다.any
는 태그가 지정된 아티팩트와 태그가 지정되지 않은 아티팩트 모두에 적용됩니다. 저장소에 변경할 수 없는 태그가 사용 설정된 경우 태그가 지정된 아티팩트를 삭제할 수 없습니다.TAG_PREFIX
,TAG_PREFIX_N
: 정책을 적용할 태그 프리픽스PKG_PREFIX
,PKG_PREFIX_N
: 정책을 적용할 패키지 프리픽스TIME_SINCE_UPLOAD
: 아티팩트 버전이 저장소에 업로드된 이후의 시간(기간). 각각s
,m
,h
,d
를 추가하여 초, 분, 시간, 일로 기간을 지정할 수 있습니다.KEEP_COUNT
는 저장소에 유지할 아티팩트 버전의 수입니다.
Artifact Registry가 저장소를 만듭니다. 다음 명령어를 실행하여 저장소에 대한 설명을 봅니다.
gcloud artifacts repositories describe REPOSITORY \
--location=LOCATION
저장소를 만든 후:
- 저장소에 대한 액세스 권한을 부여합니다.
저장소 인증을 위해 Docker, 패키지 관리자, 기타 타사 클라이언트를 구성합니다.
저장소 설명 수정
Google Cloud 콘솔 또는 gcloud CLI에서 저장소 설명을 변경할 수 있습니다.
콘솔
Google Cloud 콘솔에서 저장소 페이지를 엽니다.
저장소 목록에서 저장소를 선택하고 저장소 수정을 클릭합니다.
저장소 설명을 수정한 후 저장을 클릭합니다.
gcloud
저장소 설명을 업데이트하려면 다음 명령어를 실행합니다.
gcloud artifacts repositories update REPOSITORY \
--project=PROJECT \
--location=LOCATION \
--description="DESCRIPTION"
다음을 바꿉니다.