Importar componentes

O App Design Center oferece suporte a vários Google Cloud produtos que podem ser adicionados como componentes ao aplicativo. Para usar sua própria versão desses componentes ou adicionar outros, importe os módulos do Terraform para o App Design Center.

Os módulos do Terraform são configurações reutilizáveis para Google Cloud produtos. A importação de módulos do Terraform ajuda você a:

  • Acelerar e controlar o desenvolvimento de aplicativos.
  • Reutilizar as decisões de design atuais no App Design Center.
  • Ajudar os desenvolvedores de aplicativos a aderir às políticas de design estabelecidas.

Ao importar um módulo do Terraform, o App Design Center cria um modelo de componente correspondente no catálogo do seu espaço. Em seguida, é possível usar o modelo como um componente no design do modelo de aplicativo.

Para saber mais sobre o Terraform em Google Cloud, consulte o seguinte:

Antes de começar

Para realizar as tarefas neste documento, peça ao administrador para conceder a você os papéis necessários na pasta ativada para apps ou no projeto de gerenciamento, conforme listado na tabela a seguir:

Tarefa Funções exigidas
Importar módulos do Terraform como componentes personalizados Administrador do App Design Center (roles/designcenter.admin) ou
Usuário do App Design Center (roles/designcenter.user)

Para mais informações sobre papéis, consulte Controle de acesso com o IAM.

Configurar e importar módulos

Conclua as etapas a seguir para se conectar ao GitHub, criar um arquivo de metadados e importar um módulo do Terraform.

Conectar-se ao repositório usando o Developer Connect

Crie uma conexão do Developer Connect com o repositório do GitHub em que você armazena seus Google Cloud módulos do Terraform. Você vai usar essa conexão ao importar.

  1. Crie uma conexão do Developer Connect.

    Para conferir as etapas, consulte Conectar-se ao GitHub.

  2. Crie um link de repositório do Developer Connect.

    Para conferir as etapas, consulte Adicionar links de repositório a conexões atuais.

Opcional: preparar os metadados do módulo do Terraform

Ao importar o módulo do Terraform, você pode fornecer seus próprios metadados ou permitir que o App Design Center crie um arquivo de metadados para você.

Por exemplo, a seguir está um arquivo metadata.yaml que você pode criar para uma conta de serviço:

  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

Importar do repositório

É possível criar um componente do App Design Center importando um módulo do Terraform com base em um único Google Cloud produto. Se você fizer mudanças no módulo do Terraform no repositório, repita essas etapas para importar as mudanças.

Para importar o módulo do Terraform, faça o seguinte:

  1. Identifique o catálogo em que você quer criar o componente.

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

    Substitua:

    • PROJECT: o ID do projeto de gerenciamento.
    • LOCATION: o ID do local.
    • SPACE: o ID do espaço.

    Para mais informações, consulte gcloud design-center spaces catalogs list.

  2. Crie um modelo de catálogo no catálogo particular do seu espaço.

      gcloud design-center spaces catalogs templates create COMPONENT_TEMPLATE \
      --project=PROJECT \
      --catalog=CATALOG \
      --location=LOCATION \
      --space=SPACE \
      --template-category=component-template
    

    Substitua:

    • COMPONENT_TEMPLATE: o ID do modelo de componente que você quer criar.
    • PROJECT: o ID do projeto de gerenciamento.
    • CATALOG: o ID do catálogo.
    • LOCATION: o ID do local.
    • SPACE: o ID do espaço.

    Para mais informações, consulte gcloud design-center spaces catalogs templates create.

  3. Crie uma revisão de modelo de catálogo com base no módulo do Terraform no repositório.

      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
    
    

    Substitua:

    • REVISION: o ID da revisão que você quer criar.
    • PROJECT: o ID do projeto de gerenciamento.
    • CATALOG: o ID do catálogo.
    • LOCATION: o ID do local.
    • SPACE: o ID do espaço.
    • COMPONENT_TEMPLATE: o ID do modelo que você criou na etapa anterior.
    • DEVELOPER_CONNECT_REPO: o repositório do Developer Connect a ser usado como origem. Por exemplo, projects/my-project/locations/us-central1/connections/my-connection/gitRepositoryLinks/my-repo.
    • DEVELOPER_CONNECT_REPO_REF: a ramificação ou tag do Git no repositório. Por exemplo, refs/tags/v1.0.0 ou refs/heads/main.
    • DEVELOPER_CONNECT_REPO_DIR: o diretório no repositório. Por exemplo, modules/my-product.
    • Para especificar os metadados do módulo do Terraform, faça uma das seguintes ações:
      • Para usar seu próprio arquivo de metadados, substitua METADATA pelo seu arquivo metadata.yaml.
      • Para usar automaticamente os arquivos de metadados localizados no repositório, deixe a flag --metadata não especificada.

    Para mais informações, consulte gcloud design-center spaces catalogs templates revisions create.

  4. Compartilhe seu catálogo com outros espaços.

      gcloud design-center spaces catalogs shares create SHARE \
      --project=PROJECT \
      --catalog=CATALOG \
      --location=LOCATION \
      --space=SPACE \
      --destination-space=DESTINATION_SPACE
    

    Substitua:

    • SHARE: o ID do compartilhamento que você quer criar.
    • PROJECT: o ID do projeto de gerenciamento.
    • CATALOG: o ID do catálogo.
    • LOCATION: o ID do local.
    • SPACE: o ID do espaço.
    • DESTINATION_SPACE: o ID do espaço de destino.

    Para mais informações, consulte gcloud design-center spaces catalogs shares create.

Criar um modelo de aplicativo usando componentes importados

Crie um modelo de aplicativo usando os componentes importados e os fornecidos pelo Google.

  1. Crie um novo modelo de aplicativo.

      gcloud design-center spaces application-templates create APPLICATION_TEMPLATE \
      --project=PROJECT \
      --location=LOCATION \
      --space=SPACE
    

    Substitua:

    • APPLICATION_TEMPLATE: o ID do modelo de aplicativo que você quer criar.
    • PROJECT: o ID do projeto de gerenciamento.
    • LOCATION: o ID do local.
    • SPACE: o ID do espaço.

    Para mais informações, consulte gcloud design-center spaces application-templates create.

  2. Identifique os URIs de revisão de modelo dos componentes que você quer adicionar ao modelo.

      gcloud design-center spaces shared-templates list \
      --project=PROJECT \
      --location=LOCATION \
      --space=SPACE \
      --uri
    

    Substitua:

    • PROJECT: o ID do projeto de gerenciamento.
    • LOCATION: o ID do local.
    • SPACE: o ID do espaço.

    Para mais informações, consulte gcloud design-center spaces shared-templates list.

  3. Adicione um componente ao modelo de aplicativo.

      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
    

    Substitua:

    • COMPONENT: o ID do componente que você quer adicionar ao modelo.
    • PROJECT: o ID do projeto de gerenciamento.
    • LOCATION: o ID do local.
    • SPACE: o ID do espaço.
    • APPLICATION_TEMPLATE: o ID do modelo de aplicativo em que você está adicionando o componente.
    • SHARED_TEMPLATE_URI: o URI do modelo compartilhado do componente. Por exemplo, projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1.

    Para mais informações, consulte gcloud design-center spaces application-templates components create.

  4. Adicione um segundo componente ao modelo.

      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
    

    Substitua:

    • COMPONENT_2: o ID do segundo componente que você quer adicionar ao modelo.
    • PROJECT: o ID do projeto de gerenciamento.
    • LOCATION: o ID do local.
    • SPACE: o ID do espaço.
    • APPLICATION_TEMPLATE: o ID do modelo de aplicativo em que você está adicionando o componente.
    • SHARED_TEMPLATE_URI_2: o URI do modelo compartilhado do segundo componente. Por exemplo, projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1.

    Para mais informações, consulte gcloud design-center spaces application-templates components create.

  5. Crie uma conexão entre os dois componentes.

      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
    

    Substitua:

    • CONNECTION: o ID da conexão que você quer adicionar ao modelo.
    • PROJECT: o ID do projeto de gerenciamento.
    • LOCATION: o ID do local.
    • SPACE: o ID do espaço.
    • APPLICATION_TEMPLATE: o ID do modelo de aplicativo em que você está adicionando o componente.
    • SHARED_TEMPLATE_URI_2: o URI do modelo compartilhado do segundo componente. Por exemplo, projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1.

    Para mais informações, consulte gcloud design-center spaces application-templates components connections create.

A seguir