下载并部署 Terraform

如果您有自己的部署工具和工作流,则可以将模板或应用下载为 Terraform 文件。

系统会生成以下 Terraform 文件:

  • main.tf:包含模板中每个组件的模块的基础设施代码。
  • outputs.tf:公开有关已部署的基础设施组件的信息。
  • variables.tf:声明 main.tf 文件中使用的变量的名称、类型和说明。
  • input.tfvars:为 main.tf 文件中使用的变量定义值。
  • providers.tf:定义有助于 Terraform 与 Google Cloud API 和资源互动的标签。

如需了解背景信息,请参阅 Terraform onGoogle Cloud概览

如果您没有自己的部署工具和工作流,请参阅从Google Cloud 控制台部署应用

准备工作

如需执行本文档中的任务,请让管理员为您授予已启用应用的文件夹或管理项目的必要角色,如下表所示:

任务 所需的角色
将生成的 Terraform 代码导出到本地或源代码控制库 Application Admin (roles/designcenter.applicationAdmin) 或
Application Editor (roles/designcenter.applicationEditor)

如需详细了解角色,请参阅使用 IAM 进行访问权限控制

导出 Terraform 代码

如果您想在 Google Cloud之外维护模板和应用,可以生成 Terraform 并将其导出到本地计算机或代码库。

在本地导出

您可以导出从模板或应用生成的 Terraform 代码。

模板

  1. 在 Google Cloud 控制台中,前往模板页面。

    前往“模板”

  2. 点击要导出的模板 ID

  3. 点击获取验证码

    系统会将一个 ZIP 文件下载到您的本地计算机上。您可以使用自己的部署工具和工作流来部署应用。

应用

  1. 在 Google Cloud 控制台中,打开应用页面。

    打开“应用”

  2. 点击要导出的应用名称

  3. 点击获取验证码

    系统会将一个 ZIP 文件下载到您的本地计算机上。您可以使用自己的部署工具和工作流来部署应用。

导出到代码库

如需通过源代码管理代码库维护模板,您可以将模板和应用导出到 GitHub。然后,您可以使用现有的版本控制工作流,并通过自己的 CI/CD 流水线触发构建、测试和部署。

连接到代码库

如需在 GitHub 代码库和管理项目之间创建 Developer Connect 连接,请执行以下操作:

  1. 更改组织政策,将以下服务添加到许可名单:

    1. developerconnect.googleapis.com
    2. secretmanager.googleapis.com

    如需了解更改组织政策的步骤,请参阅使用“限制资源服务使用”限制条件

  2. 创建与 GitHub 代码库的 Developer Connect 连接,包括以下内容:

    1. 选择启用数据驻留
    2. 关联要将应用导出到的代码库。

    如需了解创建连接和关联代码库的步骤,请参阅连接 GitHub

  3. 如需复制代码库 URI,请执行以下操作:

    1. 打开 Developer Connect Git 代码库页面。
    2. 代码库表格中,点击更多选项,然后选择复制资源路径

生成并导出

如需生成 Terraform 代码并将其导出到 GitHub 代码库,请执行以下操作:

模板

  1. 确定您的会议室 ID。

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

    替换以下内容:

    • PROJECT:您的管理项目 ID。
    • LOCATION:您的位置 ID。
  2. 确定要导出的模板的模板 ID。

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

    替换以下内容:

    • SPACE:您的空间 ID。
    • PROJECT:您的管理项目 ID。
    • LOCATION:您的位置 ID。
  3. 生成模板的 Terraform 代码,并导出到 GitHub。

    gcloud design-center spaces application-templates generate APPLICATION_TEMPLATE \
        --space=SPACE \
        --project=PROJECT \
        --location=LOCATION \
        --developer-connect-export-config-repo-uri=DEVELOPER_CONNECT_EXPORT_CONFIG_REPO_URI \
        --developer-connect-export-config-dir=DEVELOPER_CONNECT_EXPORT_CONFIG_DIR \
        --developer-connect-export-config-branch=DEVELOPER_CONNECT_EXPORT_CONFIG_BRANCH
    

    替换以下内容:

    • APPLICATION_TEMPLATE:要导出的模板的模板 ID。
    • SPACE:您的空间 ID。
    • PROJECT:您的管理项目 ID。
    • LOCATION:您的位置 ID。
    • DEVELOPER_CONNECT_EXPORT_CONFIG_DIR:相对于 GitHub 代码库的目录。
    • DEVELOPER_CONNECT_EXPORT_CONFIG_BRANCH:GitHub 代码库中的分支。

    如需了解详情,请参阅 gcloud design-center spaces application-templates generate

  4. 查看您的代码库,验证模板是否已成功导出。

应用

  1. 确定您的会议室 ID。

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

    替换以下内容:

    • PROJECT:您的管理项目 ID。
    • LOCATION:您的位置 ID。
  2. 确定要导出的应用的 ID。

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

    替换以下内容:

    • SPACE:您的空间 ID。
    • PROJECT:您的管理项目 ID。
    • LOCATION:您的位置 ID。
  3. 生成应用的 Terraform 代码,并导出到 GitHub。

    gcloud design-center spaces applications generate APPLICATION \
        --space=SPACE \
        --project=PROJECT \
        --location=LOCATION \
        --developer-connect-export-config-repo-uri=DEVELOPER_CONNECT_EXPORT_CONFIG_REPO_URI \
        --developer-connect-export-config-dir=DEVELOPER_CONNECT_EXPORT_CONFIG_DIR \
        --developer-connect-export-config-branch=DEVELOPER_CONNECT_EXPORT_CONFIG_BRANCH
    

    替换以下内容:

    • APPLICATION:要导出的应用的 ID。
    • SPACE:您的空间 ID。
    • PROJECT:您的管理项目 ID。
    • LOCATION:您的位置 ID。
    • DEVELOPER_CONNECT_EXPORT_CONFIG_DIR:相对于 GitHub 代码库的目录。
    • DEVELOPER_CONNECT_EXPORT_CONFIG_BRANCH:GitHub 代码库中的分支。

    如需了解详情,请参阅 gcloud design-center spaces applications generate

  4. 查看您的代码库,验证应用是否已成功导出。

后续步骤