App Design Center는 애플리케이션에 구성요소로 추가할 수 있는 여러 Google Cloud 제품 을 지원합니다. 이러한 구성요소의 자체 버전을 사용하거나 다른 구성요소를 추가하려면 Terraform 모듈을 App Design Center로 가져오세요.
Terraform 모듈은 Google Cloud 제품의 재사용 가능한 구성입니다. Terraform 모듈을 가져오면 다음을 수행할 수 있습니다.
- 애플리케이션 개발을 가속화하고 관리합니다.
- App Design Center에서 기존 디자인 결정을 재사용합니다.
- 애플리케이션 개발자가 설정된 디자인 정책을 준수하도록 지원합니다.
Terraform 모듈을 가져오면 App Design Center는 공간의 카탈로그에 상응하는 구성요소 템플릿을 만듭니다. 그런 다음 템플릿을 애플리케이션 템플릿 디자인의 구성요소로 사용할 수 있습니다.
Terraform에 대해 알아보려면 다음을 참고하세요 Google Cloud.
시작하기 전에
관리자에게 앱 지원 폴더 또는 관리 프로젝트에 대한 다음 역할 중 하나를 부여해 달라고 요청하세요.
- App Design Center 관리자 (
roles/designcenter.admin). - App Design Center 사용자 (
roles/designcenter.user).
모듈 구성 및 가져오기
GitHub에 연결하고, 메타데이터 파일을 만들고, Terraform 모듈을 가져오려면 다음 단계를 완료하세요.
Developer Connect를 사용하여 저장소에 연결
Terraform 모듈을 저장하는 GitHub 저장소 에 대한 Developer Connect 연결을 만듭니다. Google Cloud 이 연결은 가져올 때 사용합니다.
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 모듈을 가져와 App Design Center 구성요소를 만들 수 있습니다. 저장소에서 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다음을 바꿉니다.
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 - 저장소에 있는 메타데이터 파일을 자동으로 사용하려면 --metadata 플래그를 지정하지 않은 상태로 둡니다.
- 자체 메타데이터 파일을 사용하려면 자체 메타데이터 파일을
자세한 내용은 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 코드를 내보냅니다.