本指南概述了 App Lifecycle Manager 租户,以及如何使用它们来整理 SaaS 产品。
租户和租户项目
App Lifecycle Manager 租户资源 代表 SaaS 产品的逻辑客户、客户端或 租户。它主要充当一种组织工具,可帮助您将属于特定租户的单元分组。
如果您的 SaaS 产品有多个租户,我们建议您将每个租户的资源预配到单独的项目中。 Google Cloud 如需将租户资源划分为专用 Google Cloud 项目,您需要创建至少两个项目:
- 生产者项目 :用于配置 SaaS 产品的项目。 您的 SaaS 应用只需要 一个生产者项目 。
- 租户项目:包含 特定租户的 App Lifecycle Manager 资源的项目。我们建议您为每个租户创建一个项目。
为每个租户使用单独的项目,可让您在租户项目中设置配置(例如 IAM 政策或网络对等互连),并帮助您跟踪每个租户的费用和管理资源。
租户项目中的执行服务账号
执行服务账号 需要在租户项目中拥有权限,才能创建和管理 Terraform 配置中定义的资源。我们建议您为每个租户设置单独的执行账号。
如需详细了解执行服务账号及其可能需要的权限,请参阅执行服务账号。
租户项目中的 API
当 App Lifecycle Manager(通过 Infrastructure Manager 和执行服务账号)尝试在租户项目中创建资源(例如虚拟机)时,必须在 该租户项目 中启用必要的 API。否则,预配将失败。
您必须在租户项目中为 Terraform 配置使用的 所有 资源类型启用 API。
使用临时单元种类自动执行租户设置
为每个新租户手动创建项目、启用 API 和配置 IAM 既耗时又容易出错。您可以使用 App Lifecycle Manager 自动执行租户设置流程,方法是创建包含 Terraform 配置的 临时单元种类 ,该配置可以:
- 为租户创建一个新 Google Cloud 项目。
- 在该新项目中启用必要的 API。
- 为预配的租户创建一个专用执行服务帐号(在生产者项目或租户项目中)。
- 向 租户项目中的 服务账号授予必要的 IAM 权限。
- 设置网络、日志记录或其他基准基础架构。
您的临时单元种类应:
- 为
tenant_project_id、tenant_project_number和它创建的actuation_sa电子邮件定义 Terraformoutput变量。 - 将
tenant_id作为input变量接收。
将应用单元种类配置为依赖于临时单元种类,并将输出变量映射到应用单元的相应输入变量。
配置单元种类依赖项后,App Lifecycle Manager 会先验证底层租户基础架构单元是否已预配(创建租户项目并设置其权限),然后再预配包含应用的单元。
如需详细了解如何实现此模式,请参阅管理单元之间的依赖关系和使用变量 。