下载并部署 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 控制台部署应用

准备工作

请让您的管理员为您授予已启用应用的文件夹或管理项目的以下角色之一:

  • Application Admin (roles/designcenter.applicationAdmin)。
  • Application Editor (roles/designcenter.applicationEditor)。

导出 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. 查看您的代码库,验证应用是否已成功导出。

后续步骤

Google Cloud上的 Terraform 概览