如需使用 Infrastructure Manager (Infra Manager),您应该熟悉 Terraform。如需详细了解 Terraform,请先参阅什么是 Terraform?。
Infra Manager 会部署 Terraform 配置中定义的基础设施资源和配置。这些配置可以包含多个文件和目录,但其入口点必须是 Terraform 根模块。
Infra Manager 使用术语蓝图来指代 Terraform 配置。
如需详细了解如何将 Terraform 与 Google Cloud搭配使用,请参阅将 Terraform 与 Google Cloud搭配使用。
适用于 Google Cloud的 Terraform 模块
如需查看用于预配 Google Cloud 资源的一组模块,请参阅适用于 Google Cloud 的 Terraform 蓝图和模块。
您还可以为 Google Cloud创建自己的 Terraform 模块。如需了解详情,请参阅创建模块。
支持的 Terraform 版本
Infra Manager 支持以下 Terraform 版本:
| Terraform 版本 | 价格层级 | 发布日期 | 弃用日期 | 支持终止日期 | 自动迁移到版本 |
|---|---|---|---|---|---|
1.2.3 |
免费层级 | 2023 年 8 月 21 日 | 2026 年 1 月 8 日 | 2026 年 2 月 8 日 | 1.5.7 |
1.3.10 |
免费层级 | 2024 年 3 月 14 日 | 待定 | 待定 | 待定 |
1.4.7 |
免费层级 | 2024 年 3 月 14 日 | 待定 | 待定 | 待定 |
1.5.7 |
免费层级 | 2024 年 3 月 14 日 | 待定 | 待定 | 待定 |
1.16.5 |
付费 | 2026 年 11 月 2 日 | 待定 | 待定 | 待定 |
如需了解每个 Terraform 版本中引入的功能,请参阅 HashiCorp Terraform 文档和 Terraform 版本。
您可以在Google Cloud 控制台中创建部署、更新部署或预览部署时,或者使用 gcloud CLI 中的 --tf-version-constraint 标志,指定 Infra Manager 使用的 Terraform 版本。
如果您在创建新部署或预览时未指定 Terraform 版本,Infra Manager 会默认使用最新支持的免费层级版本 (1.5.7)。如需使用付费版本(例如 1.16.5),您必须明确指定版本限制。
更新部署时,您可以升级到更高版本的 Terraform,但无法降级到较低的受支持版本。如需了解 Terraform 版本弃用,请参阅 Terraform 版本管理政策文档。
如需查看用于创建特定部署或修订版本的 Terraform 版本,请参阅查看部署的详细信息和查看修订版本的详细信息。
Terraform 版本的许可和价格
Terraform 1.5.7 及更早版本根据 Mozilla 公共许可 (MPL 2.0) 作为开源软件分发,可在免费层级中使用,无需支付 Infra Manager 管理费。
Terraform 版本 1.16.5 根据商业源代码许可 (BUSL) 分发,并在 Infra Manager 中作为付费版本提供。使用付费 Terraform 版本会根据 Infra Manager 管理的资源数量产生部署和管理费用:
免费层级限额:每个结算账号每月最多可免费使用 500 个资源。
使用费:超出每月 500 项资源的免费层级限额后,由使用付费 Terraform 版本的部署管理的资源会产生资源管理费,该费用按每项资源每小时计量。
预览不收费:付费 Terraform 版本(例如
1.16.5)仅针对 Infra Manager 部署产生费用,不针对部署预览产生费用。
如需详细了解价格,请参阅 Infrastructure Manager 价格。
对 Terraform 配置的限制
如需使用 Infrastructure Manager 部署 Terraform 配置,该配置具有以下限制:
- 请勿在 Terraform 配置值中包含个人身份信息或敏感信息。如需了解详情,请参阅 Terraform 配置值和敏感数据。
- 必须提供有效的 Terraform 根模块。不支持 Terraform 的模板化或生成。
- 配置应可由受支持的 Terraform 版本执行。
- 不应定义后端块。
- 我们不建议使用预配工具。请尽可能使用其他解决方案。如需详细了解此建议,请参阅预配工具是最后的手段。如果您使用的是预配工具,请注意 Infra Manager 运行时环境可能随时发生变化。
Terraform 配置值和敏感数据
请勿在 Terraform 配置值中包含个人身份信息或敏感信息。
Google Cloud 提供商的文档指明了可能包含敏感信息的配置值。
例如,资源 google_storage_bucket_object 允许使用 content 参数创建 Cloud Storage 对象。此
参数在
Google Cloud 提供方文档的 google_storage_bucket_object 页面上标记为敏感。
您可以使用这些标签来帮助您创建 Terraform 配置,或在使用前查看现有 Terraform 配置。
如需了解 Google Cloud 如何处理在提供和管理 Cloud 服务期间收集或生成的个人信息,请参阅Google Cloud 隐私权声明。
使用适用于 Google Cloud的 Terraform 提供程序
(可选)您可以使用 gcloud CLI 配置部署和预览,以使用 Infra Manager 维护的Google CloudTerraform 提供程序。
Infra Manager 支持适用于 Google Cloud的 Terraform 提供程序:
googlegoogle-beta
省略此字段可使用 HashiCorp 维护的适用于 Google Cloud的 Terraform 提供程序。
如需了解如何指定使用 Infra Manager 维护的 Terraform 提供程序,请参阅使用 Infrastructure Manager 部署基础设施、更新部署或预览部署。
查看提供商支持的版本
如需查看 Infra Manager 支持的 Google Cloud Terraform 提供程序版本,请查看 Infra Manager 维护的 Cloud Storage 存储桶(与部署区域相关联)中的 manifest.json,格式如下:
https://storage.googleapis.com/LOCATION-im-providers/hashicorp/PROVIDER_VERSION/manifest.json
您可以在 manifest.json 文件的 versions 字段中找到受支持版本的完整列表。
例如,如果您的部署位于 africa-south1 区域,并且您使用的是 google-beta 提供方,请前往 https://storage.googleapis.com/africa-south1-im-providers/hashicorp/google-beta/manifest.json 查看可用区域。
后续步骤
- 详细了解 Infrastructure Manager。
- 创建部署。
- 更新部署。
- 查看部署的状态。
- 删除部署。