Application Design Center는 애플리케이션에 구성요소로 추가할 수 있는 여러 Google Cloud 제품을 지원합니다. 이러한 구성요소의 자체 버전을 사용하거나 다른 구성요소를 추가하려면 Terraform 모듈을 앱 디자인 센터로 가져오세요.
Terraform 모듈은 Google Cloud 제품의 재사용 가능한 구성입니다. Terraform 모듈을 가져오면 다음 작업을 할 수 있습니다.
- 애플리케이션 개발을 가속화하고 관리합니다.
- App Design Center에서 기존 디자인 결정을 재사용하세요.
- 애플리케이션 개발자가 설정된 디자인 정책을 준수하도록 지원합니다.
Terraform 모듈을 가져오면 앱 디자인 센터에서 공간의 카탈로그에 해당 구성요소 템플릿을 만듭니다. 그런 다음 템플릿을 애플리케이션 템플릿 디자인의 구성요소로 사용할 수 있습니다.
Google Cloud의 Terraform에 대해 알아보려면 다음을 참고하세요.
시작하기 전에
관리자에게 앱 지원 폴더 또는 관리 프로젝트에 대한 다음 역할 중 하나를 부여해 달라고 요청하세요.
- App Design Center 관리자 (
roles/designcenter.admin) - App Design Center 사용자 (
roles/designcenter.user)
모듈 구성 및 가져오기
다음 단계를 완료하여 GitHub에 연결하고, 메타데이터 파일을 만들고, Terraform 모듈을 가져옵니다.
Developer Connect를 사용하여 저장소에 연결
Google Cloud Terraform 모듈을 저장하는 GitHub 저장소에 Developer Connect 연결을 만듭니다. 가져올 때 이 연결을 사용합니다.
Developer Connect 연결을 만듭니다.
단계는 GitHub에 연결을 참고하세요.
Developer Connect 저장소 링크를 만듭니다.
자세한 단계는 기존 연결에 저장소 링크 추가하기를 참고하세요.
선택사항: Terraform 모듈 메타데이터 준비
Terraform 모듈을 가져올 때 자체 메타데이터를 제공하거나 App Design Center에서 메타데이터 파일을 만들도록 할 수 있습니다.
예를 들어 서비스 계정에 대해 만들 수 있는 metadata.yaml 파일은 다음과 같습니다.
spec:
info:
actuationTool:
flavor: Terraform
version: ">= 1.3"
interfaces: # Optional
variables:
- name: service_account
connections:
- source:
source: github.com/terraform-google/terraform-google-service-accounts
version: ">= 4.4"
spec:
outputExpr: email
requirements:
roles: # Optional after IAM integrations
- level: Project
roles:
- roles/iam.serviceAccountUser
- roles/iap.admin
- roles/run.admin
- roles/iam.serviceAccountAdmin
providerVersions:
- source: hashicorp/google
version: ">= 6, < 7"
- source: hashicorp/google-beta
version: ">= 6, < 7"
ui: # Optional
input:
variables:
ca_root_module:
name: ca_root_module
title: Ca Root Module
service_account:
name: service_account
title: Service Account
저장소에서 가져오기
단일 Google Cloud 제품을 기반으로 하는 Terraform 모듈을 가져와 앱 디자인 센터 구성요소를 만들 수 있습니다. 저장소에서 Terraform 모듈을 변경하는 경우 이러한 단계를 반복하여 변경사항을 가져오세요.
Terraform 모듈을 가져오려면 다음 단계를 따르세요.
구성요소를 만들 카탈로그를 식별합니다.
gcloud design-center spaces catalogs list \ --project=PROJECT \ --location=LOCATION \ --space=SPACE다음을 바꿉니다.
PROJECT: 관리 프로젝트 ID입니다.LOCATION: 위치 ID입니다.SPACE: 스페이스 ID입니다.
자세한 내용은 gcloud design-center spaces catalogs list를 참고하세요.
스페이스의 비공개 카탈로그에서 카탈로그 템플릿을 만듭니다.
gcloud design-center spaces catalogs templates create COMPONENT_TEMPLATE \ --project=PROJECT \ --catalog=CATALOG \ --location=LOCATION \ --space=SPACE \ --template-category=component-template다음을 바꿉니다.
COMPONENT_TEMPLATE: 만들려는 구성요소 템플릿의 템플릿 ID입니다.PROJECT: 관리 프로젝트 ID입니다.CATALOG: 카탈로그 ID입니다.LOCATION: 위치 ID입니다.SPACE: 스페이스 ID입니다.
자세한 내용은 gcloud design-center spaces catalogs templates create를 참고하세요.
저장소의 Terraform 모듈을 기반으로 카탈로그 템플릿 버전을 만듭니다.
gcloud design-center spaces catalogs templates revisions create REVISION \ --project=PROJECT \ --catalog=CATALOG \ --location=LOCATION \ --space=SPACE \ --template=COMPONENT_TEMPLATE \ --developer-connect-repo=DEVELOPER_CONNECT_REPO \ --developer-connect-repo-ref=DEVELOPER_CONNECT_REPO_REF \ --developer-connect-repo-dir=DEVELOPER_CONNECT_REPO_DIR \ --metadata=METADATA | --use-repo다음을 바꿉니다.
REVISION: 만들려는 수정사항의 수정사항 ID입니다.PROJECT: 관리 프로젝트 ID입니다.CATALOG: 카탈로그 ID입니다.LOCATION: 위치 ID입니다.SPACE: 스페이스 ID입니다.COMPONENT_TEMPLATE: 이전 단계에서 만든 템플릿 ID입니다.DEVELOPER_CONNECT_REPO: 소스로 사용할 Developer Connect 저장소입니다. 예를 들면projects/my-project/locations/us-central1/connections/my-connection/gitRepositoryLinks/my-repo입니다.DEVELOPER_CONNECT_REPO_REF: 저장소의 Git 브랜치 또는 태그입니다. 예를 들면refs/tags/v1.0.0또는refs/heads/main입니다.DEVELOPER_CONNECT_REPO_DIR: 저장소의 디렉터리입니다. 예를 들면modules/my-product입니다.- Terraform 모듈 메타데이터를 지정하려면 다음 중 하나를 수행하세요.
- 자체 메타데이터 파일을 사용하려면
METADATA를metadata.yaml파일로 바꿉니다. - 저장소에서 메타데이터 파일을 자동으로 생성하려면
--use-repo플래그를 지정하세요.
- 자체 메타데이터 파일을 사용하려면
자세한 내용은 gcloud design-center spaces catalogs templates revisions create를 참고하세요.
다른 스페이스와 카탈로그를 공유합니다.
gcloud design-center spaces catalogs shares create SHARE \ --project=PROJECT \ --catalog=CATALOG \ --location=LOCATION \ --space=SPACE \ --destination-space=DESTINATION_SPACE다음을 바꿉니다.
SHARE: 만들려는 공유의 공유 ID입니다.PROJECT: 관리 프로젝트 ID입니다.CATALOG: 카탈로그 ID입니다.LOCATION: 위치 ID입니다.SPACE: 스페이스 ID입니다.DESTINATION_SPACE: 대상 스페이스 ID입니다.
자세한 내용은 gcloud design-center spaces catalogs shares create를 참고하세요.
가져온 구성요소를 사용하여 애플리케이션 템플릿 만들기
가져온 구성요소와 Google 제공 구성요소를 사용하여 애플리케이션 템플릿을 만듭니다.
새 애플리케이션 템플릿을 만듭니다.
gcloud design-center spaces application-templates create APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE다음을 바꿉니다.
APPLICATION_TEMPLATE: 만들려는 애플리케이션 템플릿의 템플릿 ID입니다.PROJECT: 관리 프로젝트 ID입니다.LOCATION: 위치 ID입니다.SPACE: 스페이스 ID입니다.
자세한 내용은 gcloud design-center spaces application-templates create를 참고하세요.
템플릿에 추가할 구성요소의 템플릿 버전 URI를 식별합니다.
gcloud design-center spaces shared-templates list \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --uri다음을 바꿉니다.
PROJECT: 관리 프로젝트 ID입니다.LOCATION: 위치 ID입니다.SPACE: 스페이스 ID입니다.
자세한 내용은 gcloud design-center spaces shared-templates list를 참고하세요.
애플리케이션 템플릿에 구성요소를 추가합니다.
gcloud design-center spaces application-templates components create COMPONENT \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --application-template=APPLICATION_TEMPLATE \ --shared-template-revision-uri=SHARED_TEMPLATE_URI다음을 바꿉니다.
COMPONENT: 템플릿에 추가할 구성요소의 구성요소 ID입니다.PROJECT: 관리 프로젝트 ID입니다.LOCATION: 위치 ID입니다.SPACE: 스페이스 ID입니다.APPLICATION_TEMPLATE: 구성요소를 추가할 애플리케이션 템플릿의 템플릿 ID입니다.SHARED_TEMPLATE_URI: 구성요소 공유 템플릿 URI입니다. 예를 들면projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1입니다.
자세한 내용은 gcloud design-center spaces application-templates components create를 참고하세요.
템플릿에 두 번째 구성요소를 추가합니다.
gcloud design-center spaces application-templates components create COMPONENT_2 \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --application-template=APPLICATION_TEMPLATE \ --shared-template-revision-uri=SHARED_TEMPLATE_URI_2다음을 바꿉니다.
COMPONENT_2: 템플릿에 추가할 두 번째 구성요소의 구성요소 ID입니다.PROJECT: 관리 프로젝트 ID입니다.LOCATION: 위치 ID입니다.SPACE: 스페이스 ID입니다.APPLICATION_TEMPLATE: 구성요소를 추가할 애플리케이션 템플릿의 템플릿 ID입니다.SHARED_TEMPLATE_URI_2: 두 번째 공유 템플릿 URI 구성요소입니다. 예를 들면projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1입니다.
자세한 내용은 gcloud design-center spaces application-templates components create를 참고하세요.
두 구성요소 간에 연결을 만듭니다.
gcloud design-center spaces application-templates components connections create CONNECTION \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --application-template=APPLICATION_TEMPLATE \ --component=COMPONENT \ --destination-component-uri=SHARED_TEMPLATE_URI_2다음을 바꿉니다.
CONNECTION: 템플릿에 추가하려는 연결의 연결 ID입니다.PROJECT: 관리 프로젝트 ID입니다.LOCATION: 위치 ID입니다.SPACE: 스페이스 ID입니다.APPLICATION_TEMPLATE: 구성요소를 추가할 애플리케이션 템플릿의 템플릿 ID입니다.SHARED_TEMPLATE_URI_2: 두 번째 공유 템플릿 URI 구성요소입니다. 예를 들면projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1입니다.
자세한 내용은 gcloud design-center spaces application-templates components connections create를 참고하세요.
다음 단계
- 배포하기 전에 애플리케이션을 만드세요.
- 콘솔에서 배포
- Terraform 코드를 내보냅니다.