이 페이지에서는 Artifact Registry에 저장된 패키징된 Go 모듈을 관리하는 방법을 설명합니다.
시작하기 전에
- 대상 저장소가 없으면 새 저장소를 만듭니다. 저장소 형식으로 Go를 선택합니다.
- 저장소에 대해 필요한 권한이 있는지 확인합니다.
- (선택사항) gcloud 명령어의 기본값을 구성합니다.
- Go 1.15 이상을 설치합니다.
package-go-module gcloud CLI 부가기능을 설치합니다.
gcloud components install package-go-module
Artifact Registry로 인증하도록 Go를 구성합니다.
필요한 역할
모듈을 관리하는 데 필요한 권한을 얻으려면 관리자에게 저장소에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.
- 모듈 보기: Artifact Registry 리더(
roles/artifactregistry.reader
) - 모듈 다운로드 또는 설치: Artifact Registry 리더(
roles/artifactregistry.reader
) - 저장소에 모듈 추가: Artifact Registry 작성자(
roles/artifactregistry.writer
) - 모듈 삭제: Artifact Registry 저장소 관리자(
roles/artifactregistry.repoAdmin
)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
모듈 업로드
저장소 모드: 표준
모듈을 패키징하고 저장소에 업로드하려면 다음 명령어를 실행합니다.
gcloud artifacts go upload --project=PROJECT \ --repository=REPOSITORY \ --location=LOCATION \ --module-path=MODULE_PATH \ --version=VERSION \ --source=SOURCE_LOCATION
다음을 바꿉니다.
- PROJECT를 Google Cloud 프로젝트 ID로 바꿉니다.
- REPOSITORY를 패키지가 저장된 저장소의 이름으로 바꿉니다.
- LOCATION을 저장소의 리전 또는 멀티 리전 위치로 바꿉니다.
- MODULE_PATH를 모듈 경로로 바꿉니다. 예를 들면
example.com/foo
입니다. 자세한 내용은 Go 모듈 참조를 확인하세요. - VERSION을
vX.Y.Z
형식으로 된 모듈의 시맨틱 버전으로 바꿉니다. 여기서X
는 주 버전이고Y
는 부 버전이고Z
는 패치 버전입니다. - SOURCE_LOCATION을 Go 모듈의 루트 디렉터리 경로로 바꿉니다.
--source
플래그를 생략하면 기본값은 현재 디렉터리입니다.
모듈이 Artifact Registry에 업로드됩니다.
Go 모듈 만들기에 대한 자세한 내용은 이 튜토리얼을 참조하세요.
새 모듈 버전 업로드
저장소 모드: 표준
기본값이 구성된 경우 모듈의 새 버전을 기본 프로젝트, 저장소, 위치에 업로드하려면 새 버전 번호로 다음 명령어를 실행합니다.
gcloud artifacts go upload \ --module-path=MODULE_PATH \ --version=VERSION \ --source=SOURCE_LOCATION
VERSION을 업데이트된 모듈 버전으로 바꿉니다. 예를 들어 example.com/foo
경로로 모듈의 0.1.1
버전을 업로드하려면 다음 명령어를 실행합니다.
gcloud artifacts go upload \ --module-path=example.com/foo \ --version=v0.1.1 \ --source=SOURCE_LOCATION
모듈을 출시 전 버전으로 표시하려면 VERSION 뒤에 대시를 추가하고 모듈의 출시 전 식별자를 추가합니다.
gcloud artifacts go upload \ --module-path=MODULE_PATH \ --version=VERSION-PRE_RELEASE_IDENTIFIERS \ --source=SOURCE_LOCATION
PRE_RELEASE_IDENTIFIERS를 점으로 구분된 ASCII 영숫자 문자와 하이픈으로 바꿉니다. 예를 들어 alpha.x.12m.5
로 식별되는 경로 example.com/foo
모듈을 사용하여 모듈의 출시 전 버전을 업로드하려면 다음 명령어를 실행합니다.
gcloud artifacts go upload \ --module-path=example.com/foo \ --version=v1.0.0-alpha.x.12m.5 \ --source=SOURCE_LOCATION
새 주 버전 업로드
저장소 모드: 표준
주 버전은 이전 버전과 하위 호환되지 않습니다. 사용자가 브레이킹 체인지를 가져오지 않도록 하려면 v1
이후의 주 버전은 이전 버전과 모듈 경로가 달라야 합니다. v2
부터는 주 버전이 모듈 경로 끝에 추가됩니다.
예를 들어 example.com/foo
의 v2.0.0
에 대한 모듈 경로는 example.com/foo/v2
입니다.
주 버전 서픽스로 이름이 지정된 별도의 디렉터리에서 v1
다음에 주 버전을 개발하는 것이 좋습니다.
기본값이 구성된 경우 example.com/foo
경로가 포함된 모듈의 새 주 버전 2.0.0
을 기본 프로젝트, 저장소, 위치에 업로드하려면 다음 안내를 따르세요.
gcloud artifacts go upload --module-path=example.com/foo/v2 --version=v2.0.0
모듈 나열
저장소 모드: 표준
기본값이 구성된 경우 다음 명령어를 실행하여 기본 프로젝트, 저장소, 위치에서 업로드된 Go 모듈을 검사합니다.
gcloud artifacts packages list
다음과 유사한 결과가 출력됩니다.
Listing items under project my-project, location us-west1, repository my-repo. PACKAGE CREATE_TIME UPDATE_TIME example.com/foo 2022-06-03T20:43:39 2022-06-20T20:37:40
모듈 버전 세부정보 보기
저장소 모드: 표준
기본값이 구성된 경우 다음 명령어를 실행하여 기본 프로젝트, 저장소, 위치의 모듈 버전을 확인합니다.
gcloud artifacts versions list --package=MODULE_PATH
다음과 유사한 결과가 출력됩니다.
Listing items under project my-project, location us-west1, repository my-repo, package example.com/foo. VERSION DESCRIPTION CREATE_TIME UPDATE_TIME v0.1.0 2022-06-03T20:43:39 2022-06-03T20:43:39 v0.1.1 2022-06-20T20:37:40 2022-06-20T20:37:40
모듈을 종속 항목으로 사용
저장소 모드: 표준
Artifact Registry에 저장된 모듈을 가져오려면 Go에 Artifact Registry에서 종속 항목을 찾고 체크섬 데이터베이스를 우회하도록 지시해야 합니다. Go용 인증 설정의 안내에 따라 인증 및 Go 환경을 설정합니다.
Artifact Registry에 인증하는 데 단기 사용자 인증 정보를 사용하는 경우 다음 명령어를 실행하여 OAuth 토큰을 새로고침해야 합니다.
GOPROXY=proxy.golang.org \ go run github.com/GoogleCloudPlatform/artifact-registry-go-tools/cmd/auth@latest refresh
모듈에 아직
go.mod
파일이 없는 경우 디렉터리를 모듈 폴더로 변경하고go mod init
를 실행하여 패키지용go.mod
파일을 만듭니다.go mod init MODULE_PATH
MODULE_PATH를 Artifact Registry에 저장된 모듈의 모듈 경로로 바꿉니다. 자세한 내용은 Go 모듈 참조를 확인하세요.
Artifact Registry에 저장된 모듈의 버전을 요구하려면
go.mod
파일을 다음과 비슷하게 수정합니다.module example.com/bar go 1.19 require example.com/foo v0.1.0
다음을 바꿉니다.
example.com/foo
는 필수 모듈의 모듈 경로입니다.v0.1.0
은 Artifact Registry에 저장된 버전입니다.
main.go
파일의import
섹션에 정상적으로 모듈 경로를 포함합니다.예를 들어 Artifact Registry에 저장된
example.com/foo
경로로 모듈을 가져오려면 가져오기 섹션이 다음과 비슷할 수 있습니다.package main import ( foo "example.com/foo" ) func main() { ... }
go mod tidy
를 실행하여 종속 항목을 다운로드합니다.go mod tidy
모듈을 정상적으로 실행합니다.
go run .
Artifact Registry에 저장된 모듈을 다운로드하여 종속 항목으로 사용합니다.
패키징된 Go 모듈 삭제
저장소 모드: 표준
패키지 및 모든 해당 버전을 삭제하거나 특정 버전을 삭제할 수 있습니다.
- 패키지를 삭제하면 작업을 실행취소할 수 없습니다.
패키지 또는 패키지 버전을 삭제하기 전에 이에 대한 중요한 종속 항목에 대해 논의하거나 처리했는지 확인합니다.
패키지를 삭제하려면 다음 안내를 따르세요.
콘솔
Google Cloud 콘솔에서 저장소 페이지를 엽니다.
저장소 목록에서 적절한 저장소를 클릭합니다.
패키지 페이지에 저장소의 패키지가 나열됩니다.
삭제할 위젯을 선택합니다.
삭제를 클릭합니다.
확인 대화상자에서 삭제를 클릭합니다.
gcloud
다음 명령어를 실행합니다.
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
장소
패키지 버전을 삭제하려면 다음 안내를 따르세요.
콘솔
Google Cloud 콘솔에서 저장소 페이지를 엽니다.
저장소 목록에서 적절한 저장소를 클릭합니다.
패키지 페이지에 저장소의 패키지가 나열됩니다.
패키지의 버전을 보려면 패키지를 클릭합니다.
삭제할 버전을 선택합니다.
삭제를 클릭합니다.
확인 대화상자에서 삭제를 클릭합니다.
gcloud
다음 명령어를 실행합니다.
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
장소
다음 단계
- Go 빠른 시작 사용해 보기
- Go 명령어를 사용하지 않고 모듈 또는 버전과 연결된 개별 파일을 다운로드