구성요소 가져오기

Application Design Center는 애플리케이션에 구성요소로 추가할 수 있는 여러 Google Cloud 제품을 지원합니다. 이러한 구성요소의 자체 버전을 사용하거나 다른 구성요소를 추가하려면 Terraform 모듈을 App Design Center로 가져오세요.

Terraform 모듈은 Google Cloud 제품의 재사용 가능한 구성입니다. Terraform 모듈을 가져오면 다음 작업을 할 수 있습니다.

  • 애플리케이션 개발을 가속화하고 관리합니다.
  • App Design Center에서 기존 디자인 결정을 재사용하세요.
  • 애플리케이션 개발자가 설정된 디자인 정책을 준수하도록 지원합니다.

Terraform 모듈을 가져오면 App Design Center에서 공간의 카탈로그에 해당 구성요소 템플릿을 만듭니다. 그런 다음 템플릿을 애플리케이션 템플릿 디자인의 구성요소로 사용할 수 있습니다.

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 연결을 만듭니다. 가져올 때 이 연결을 사용합니다.

  1. Developer Connect 연결을 만듭니다.

    단계는 GitHub에 연결을 참고하세요.

  2. 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 모듈을 가져오려면 다음 단계를 따르세요.

  1. 구성요소를 만들 카탈로그를 식별합니다.

      gcloud design-center spaces catalogs list \
      --project=PROJECT \
      --location=LOCATION \
      --space=SPACE
    

    다음을 바꿉니다.

    • PROJECT: 관리 프로젝트 ID입니다.
    • LOCATION: 위치 ID입니다.
    • SPACE: 스페이스 ID입니다.

    자세한 내용은 gcloud design-center spaces catalogs list를 참고하세요.

  2. 스페이스의 비공개 카탈로그에서 카탈로그 템플릿을 만듭니다.

      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를 참고하세요.

  3. 저장소의 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 모듈 메타데이터를 지정하려면 다음 중 하나를 수행하세요.
      • 자체 메타데이터 파일을 사용하려면 METADATAmetadata.yaml 파일로 바꿉니다.
      • 저장소에서 메타데이터 파일을 자동으로 생성하려면 --use-repo 플래그를 지정하세요.

    자세한 내용은 gcloud design-center spaces catalogs templates revisions create를 참고하세요.

  4. 다른 스페이스와 카탈로그를 공유합니다.

      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 제공 구성요소를 사용하여 애플리케이션 템플릿을 만듭니다.

  1. 새 애플리케이션 템플릿을 만듭니다.

      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를 참고하세요.

  2. 템플릿에 추가할 구성요소의 템플릿 버전 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를 참고하세요.

  3. 애플리케이션 템플릿에 구성요소를 추가합니다.

      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를 참고하세요.

  4. 템플릿에 두 번째 구성요소를 추가합니다.

      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를 참고하세요.

  5. 두 구성요소 간에 연결을 만듭니다.

      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를 참고하세요.

다음 단계