구성요소 가져오기

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

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

다음 단계