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