O Application Design Center permite importar as configurações doGoogle Cloud Terraform de vários produtos para um modelo de aplicativo sem precisar reestruturar o código em módulos de componentes individuais ou publicá-lo em um catálogo primeiro.
Ao contrário dos módulos do Terraform de produto único que você importa como componentes do catálogo e conecta na tela de design, uma configuração do Terraform de vários produtos é um módulo raiz que provisiona recursos em vários produtos do Google Cloud . Para importar módulos de produto único como componentes, consulte Importar componentes.
Importar as configurações atuais do Terraform para o App Design Center ajuda você a:
- Traga as configurações atuais do Terraform para o gerenciamento do ciclo de vida de aplicativos do App Design Center e registre automaticamente os recursos implantados no App Hub.
- Crie versões das configurações do Terraform criando revisões imutáveis de modelos de aplicativos.
- Visualize e implante aplicativos usando o Infrastructure Manager ou exporte os arquivos do Terraform para o Cloud Storage.
Depois de criar uma revisão de modelo, é possível usá-la de uma das seguintes maneiras:
- Implantar diretamente: crie um aplicativo com base na revisão, visualize-o para receber um relatório de avaliação e implante-o. Não é necessário publicar o modelo em um catálogo, compartilhá-lo ou encontrar um modelo compartilhado primeiro.
- Reutilizar pelo catálogo: publique a revisão no catálogo, adicione-a como um componente a um modelo de aplicativo composto e exporte o Terraform do modelo composto. Para mais informações, consulte Publicar um modelo de aplicativo em um catálogo.
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 habilitada para apps ou no projeto de gerenciamento, conforme listado na tabela a seguir:
| Tarefa | Funções exigidas |
|---|---|
| Criar, importar, criar snapshots e exportar modelos de aplicativos e revisões de modelos | Administrador do Application Design Center (roles/designcenter.admin) ouUsuário do Application Design Center ( roles/designcenter.user) |
| Criar, implantar e exportar aplicativos | Administrador de aplicativos (roles/designcenter.applicationAdmin) ouEditor de aplicativos ( roles/designcenter.applicationEditor) |
Para mais informações sobre papéis, consulte Controle de acesso com o Identity and Access Management.
Armazene o módulo raiz do Terraform (arquivos .tf e todos os arquivos de suporte, como
.json) em uma das seguintes origens:
- Um bucket do Cloud Storage.
- Um repositório do Developer Connect.
- Um repositório Git público.
- Um arquivo YAML ou JSON local que contém os arquivos.
Importar o Terraform para um modelo de aplicativo
Siga as etapas abaixo usando a Google Cloud CLI para criar um modelo de aplicativo, importar sua configuração atual do Terraform e criar uma revisão de modelo imutável.
Crie um modelo de aplicativo no seu espaço.
gcloud design-center spaces application-templates create APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --display-name=DISPLAY_NAMESubstitua:
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.DISPLAY_NAME: um nome de exibição para o modelo de aplicativo.
Para mais informações, consulte gcloud design-center spaces application-templates create.
Importe a configuração do Terraform para o modelo de aplicativo de uma das seguintes fontes:
Para importar de um bucket do Cloud Storage, execute o seguinte comando:
gcloud design-center spaces application-templates ingest-iac APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --gcs-uri=GCS_URI \ --raw-terraform-import-enabledPara importar de um repositório do Developer Connect, execute o seguinte comando:
gcloud design-center spaces application-templates ingest-iac APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --developer-connect-repo-uri=DEVELOPER_CONNECT_REPO_URI \ --developer-connect-branch=DEVELOPER_CONNECT_BRANCH \ --developer-connect-dir=DEVELOPER_CONNECT_DIR \ --raw-terraform-import-enabledPara importar de um repositório público do Git, execute o seguinte comando:
gcloud design-center spaces application-templates ingest-iac APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --git-source-repo=GIT_SOURCE_REPO \ --git-source-ref-tag=GIT_SOURCE_REF_TAG \ --git-source-dir=GIT_SOURCE_DIR \ --raw-terraform-import-enabledPara importar de um arquivo YAML ou JSON local que contém um payload
IaCModule, execute o seguinte comando:gcloud design-center spaces application-templates ingest-iac APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --iac-module-from-file=IAC_MODULE_FILE \ --raw-terraform-import-enabled
Substitua:
APPLICATION_TEMPLATE: o ID do modelo de aplicativo.PROJECT: o ID do projeto de gerenciamento.LOCATION: o ID do local.SPACE: o ID do espaço.GCS_URI: o URI do Cloud Storage que contém seus arquivos do Terraform, no formatogs://BUCKET_NAME/FOLDER_PATH.DEVELOPER_CONNECT_REPO_URI: o URI do link do repositório do Developer Connect, no formatoprojects/PROJECT/locations/LOCATION/connections/CONNECTION/gitRepositoryLinks/REPO_LINK.DEVELOPER_CONNECT_BRANCH: o nome da ramificação no repositório do Developer Connect. Como alternativa, especifique--developer-connect-ref-tagou--developer-connect-commit-sha.DEVELOPER_CONNECT_DIR: o caminho do diretório no repositório do Developer Connect.GIT_SOURCE_REPO: o URL HTTPS do repositório público do Git.GIT_SOURCE_REF_TAG: a referência ou tag do Git no repositório público do Git.GIT_SOURCE_DIR: o caminho do diretório no repositório público do Git.IAC_MODULE_FILE: o caminho para um arquivo YAML ou JSON local que contém os arquivos do Terraform.
Crie um snapshot do modelo de aplicativo para gerar uma revisão imutável que pode ser usada para criar e implantar aplicativos.
gcloud design-center spaces application-templates snapshot APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACESubstitua:
APPLICATION_TEMPLATE: o ID do modelo de aplicativo.PROJECT: o ID do projeto de gerenciamento.LOCATION: o ID do local.SPACE: o ID do espaço.
A saída inclui o URI da revisão do modelo de aplicativo criado no formato
projects/PROJECT/locations/LOCATION/spaces/SPACE/applicationTemplates/APPLICATION_TEMPLATE/revisions/REVISION.
Criar e implantar um aplicativo com base no modelo
Depois de criar uma revisão de snapshot do modelo importado do Terraform, é possível criar um rascunho do aplicativo, fornecer valores de variáveis de entrada e implantar o aplicativo.
Crie um rascunho de aplicativo com base na revisão do modelo de aplicativo.
gcloud design-center spaces applications create APPLICATION \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --source-application-template-revision=SOURCE_APPLICATION_TEMPLATE_REVISION \ --deployment-project=DEPLOYMENT_PROJECT \ --deployment-region=DEPLOYMENT_REGION \ --app-parameters=APP_PARAMETERS \ --scope-type=SCOPE_TYPESubstitua:
APPLICATION: o ID do aplicativo que você quer criar.PROJECT: o ID do projeto de gerenciamento.LOCATION: o ID do local.SPACE: o ID do espaço.SOURCE_APPLICATION_TEMPLATE_REVISION: o URI de revisão do modelo de aplicativo retornado pelo comandosnapshot.DEPLOYMENT_PROJECT: o ID do projeto de destino em que os recursos do Terraform são implantados.DEPLOYMENT_REGION: a região de destino em que os recursos do Terraform são implantados.APP_PARAMETERS: opcional. Pares de chave-valor de variáveis de entrada para o módulo raiz do Terraform (por exemplo,key=KEY,value=VALUE) ou o caminho para um arquivo YAML ou JSON que contém os parâmetros do aplicativo.SCOPE_TYPE: o escopo do aplicativo, que pode serregionalouglobal.
Para mais informações sobre como gerenciar aplicativos, consulte Gerenciar aplicativos.
Visualizar e implantar o aplicativo. Para instruções detalhadas, consulte Implantar aplicativos.
Exportar código do Terraform para o Cloud Storage
É possível exportar os arquivos do Terraform de um modelo de aplicativo, uma revisão de modelo de aplicativo ou um aplicativo para um bucket do Cloud Storage. Exporte quando quiser executar o Terraform com suas próprias ferramentas de CI/CD ou manter uma cópia no controle de versões.
Para exportar arquivos do Terraform de um rascunho de modelo de aplicativo, execute o seguinte comando:
gcloud design-center spaces application-templates export APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --artifact-location-gcs-uri=ARTIFACT_LOCATION_GCS_URIPara exportar arquivos do Terraform de uma revisão de modelo de aplicativo, execute o seguinte comando:
gcloud design-center spaces application-templates revisions export REVISION \ --application-template=APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --artifact-location-gcs-uri=ARTIFACT_LOCATION_GCS_URIPara exportar arquivos do Terraform de um aplicativo (incluindo
zz_adc_inputs.auto.tfvars.jsonpreenchido com os parâmetros do aplicativo configurados), execute o seguinte comando:gcloud design-center spaces applications export APPLICATION \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --artifact-location-gcs-uri=ARTIFACT_LOCATION_GCS_URI
Substitua:
APPLICATION_TEMPLATE: o ID do modelo de aplicativo.REVISION: o ID da revisão do modelo de aplicativo.APPLICATION: o ID do aplicativo.PROJECT: o ID do projeto de gerenciamento.LOCATION: o ID do local.SPACE: o ID do espaço.ARTIFACT_LOCATION_GCS_URI: o URI de destino do Cloud Storage no formatogs://BUCKET_NAME/EXPORT_FOLDER.
A seguir
- Gerenciar aplicativos.
- Implantar aplicativos.
- Baixe e implante o Terraform.
- Exportar o código do Terraform do console do Google Cloud .
- Publicar um modelo de aplicativo em um catálogo.
- Importar componentes.