Data Connect 项目包含两个主要的基础设施元素:
- 一个或多个 Data Connect 服务实例
- 一个或多个 Cloud SQL for PostgreSQL 实例
本指南讨论了如何设置和管理 Data Connect 服务实例,并介绍了如何管理关联的 Cloud SQL 实例。
为 Firebase Data Connect 配置地区
使用 Data Connect 的项目需要设置位置信息。
创建新的 Data Connect 服务实例时,系统会提示您选择服务的位置。
可用位置
Data Connect 服务可在以下区域中创建。
- asia-east1
- asia-east2
- asia-northeast1
- asia-northeast2
- asia-northeast3
- asia-south1
- asia-southeast1
- asia-southeast2
- australia-southeast1
- australia-southeast2
- europe-central2
- europe-north1
- europe-southwest1
- europe-west1
- europe-west2
- europe-west3
- europe-west4
- europe-west6
- europe-west8
- europe-west9
- me-west1
- northamerica-northeast1
- northamerica-northeast2
- southamerica-east1
- southamerica-west1
- us-central1
- us-east1
- us-east4
- us-south1
- us-west1
- us-west2
- us-west3
- us-west4
管理 Data Connect 服务实例
创建服务
如需创建新服务,请使用 Firebase 控制台或使用 Firebase CLI 运行本地项目初始化。这些工作流会创建新的 Data Connect 服务。
这些流程还会引导您完成以下操作:
- 预配新的 Cloud SQL 实例(免费层)
- 将现有 Cloud SQL 实例关联到 Data Connect(包天方案)
管理用户
Data Connect 提供了一些工具来管理用户访问权限,这些工具遵循最小权限原则(为每个用户或服务账号授予支持所需功能的最低必要权限)和基于角色的访问控制 (RBAC) 的概念(通过预定义角色来管理数据库权限,从而简化安全管理)。
如需将项目成员添加为可以修改项目中的 Data Connect 实例的用户,请使用 Firebase 控制台选择适当的预定义用户角色。
这些角色使用 Identity and Access Management (IAM) 授予权限。角色是一组权限。为项目成员分配某个角色后,该成员将获得该角色包含的所有权限。如需了解详情,请参阅:
选择角色以启用特定工作流
借助 IAM 角色,您可以利用 Firebase CLI 工作流来管理 Data Connect 项目。
CLI 命令,其他工作流 | 所需角色 |
---|---|
firebase init dataconnect
|
|
firebase deploy -–only dataconnect
|
|
firebase dataconnect:sql:diff
|
|
firebase dataconnect:sql:migrate
|
|
firebase dataconnect:sql:grant
|
|
监控 Data Connect 服务性能
了解服务性能
Data Connect 服务和 Cloud SQL for PostgreSQL 服务的性能都会影响您的体验。
- 对于 Cloud SQL for PostgreSQL 服务,请参阅配额和限制文档中的一般指南。
对于 Data Connect 服务,GraphQL 请求存在配额,这会影响您调用和执行查询的速率:
- 每个项目每分钟来自客户端应用连接器的请求总数配额为 6,000 个。
- 每项目的总配额为每分钟 6,000 个请求,包括来自 Firebase Admin SDK 和 REST API 的请求。
- 每位用户每分钟 1,200 个请求的配额。在此,“每位用户”是指无论请求是由客户端应用、Firebase Admin SDK 还是 REST API 发起的,该限制都适用于由一个 IP 地址发起的请求。
如果您达到这些配额上限,请与 Firebase 支持团队联系,以调整相关配额。
监控服务性能、用量和结算情况
您可以在 Firebase 控制台中监控请求、错误和操作速率(包括全局和按操作)。
管理 Cloud SQL 实例
免费试用限制
3 个月免费试用期内不支持以下 Cloud SQL for PostgreSQL 功能:
- PostgreSQL 版本(15.x 除外)
- 使用现有的 Cloud SQL for PostgreSQL 实例
- 不同于 db-f1-micro 的机器层级
- 更改实例的资源,例如存储空间、内存、CPU
- 只读副本
- 专用实例 IP 地址
- 高可用性(多可用区);仅支持单可用区实例
- 企业加强版
- 自动备份
- 存储空间自动扩容。
管理 Cloud SQL 实例
一般来说,您可以使用 Google Cloud 控制台来管理 Cloud SQL 实例,以执行以下工作流程。
- 停止和重启 Cloud SQL 实例
- 创建和删除 Cloud SQL 数据库(在实例内)
- 使用标志启动 PostgreSQL 数据库实例,并使用各种扩展程序
- 在 Google Cloud 控制台中使用 Cloud SQL 可观测性功能监控性能
- 利用 IAM、Secret Manager、数据加密和身份验证代理等功能管理 Cloud SQL 访问权限和安全性
- 添加、删除和管理 Cloud SQL 用户。
如需了解这些工作流和其他工作流,请参阅 Cloud SQL for PostgreSQL 文档。
授予 PostgreSQL 用户角色
Data Connect 提供的工具可用于管理用户访问权限,这些工具遵循最小权限原则(为每个用户或服务账号授予支持所需功能的最低必要权限)和基于角色的访问控制 (RBAC) 的概念(通过预定义角色管理数据库权限,从而简化安全管理)。
在某些情况下,您可能希望使用所选的 SQL 客户端(例如 Cloud Run、Cloud Functions 或 GKE)直接连接到 Data Connect 管理的 Cloud SQL 数据库。
如需启用此类连接,您需要通过以下方式授予 SQL 权限:
- 向需要连接到实例的用户或服务账号分配
roles/cloudsql.client
IAM 角色,可通过 Google Cloud 控制台或使用 gcloud CLI 完成此操作 - 使用 Firebase CLI 授予必要的 PostgreSQL 角色
分配 Cloud SQL IAM 角色
如需了解如何使用 Cloud SQL for PostgreSQL 分配 IAM 角色 roles/cloudsql.client
,请参阅角色和权限。
授予 PostgreSQL 角色
借助 Firebase CLI,您可以使用 firebase dataconnect:sql:grant
命令向与项目关联的用户或服务账号授予预定义的 PostgreSQL 角色。
例如,如需授予写入者角色,请在 CLI 中运行以下命令:
firebase dataconnect:sql:grant --role writer
如需了解详情,请参阅 CLI 参考指南。
集成现有的 Cloud SQL for PostgreSQL 数据库
默认的数据库配置和管理流程假定您的项目使用新的(绿地)数据库,并且当您调用 firebase deploy
时,Data Connect 将显示要进行的数据库架构更改,并在您批准后执行任何迁移。
对于现有(棕地)数据库,您可能拥有自己的架构管理工作流,无法使用 Data Connect 工具进行迁移,但仍希望在 Data Connect 项目中使用数据库,以利用其移动和 Web SDK 生成、基于查询的授权、客户端连接管理等功能。
本部分将针对后一种情况提供指导:将现有数据库与 Data Connect 集成。
使用 Database Migration Service将现有数据库集成到 Data Connect 项目中
集成现有数据库的工作流程通常涉及以下步骤:
- 在 Firebase 控制台中进行 Data Connect 项目设置期间,选择实例和数据库。
使用 Firebase CLI,运行
firebase dataconnect:sql:setup
命令,然后拒绝允许 Data Connect 处理 SQL 迁移的选项。为防止数据库架构发生并非由您的自定义工具驱动的更改,
setup
命令将分配适当的读取者和写入者角色,但不会分配owner
角色。如需详细了解setup
命令和 PostgreSQL 角色,请参阅 CLI 参考指南。编写与数据库架构相匹配的 Data Connect GraphQL 架构。
只有当 GraphQL 架构与 PostgreSQL 架构兼容时,您才能部署 GraphQL 架构、查询和变更。
为了简化这两种架构的对齐,我们提供了
firebase dataconnect:sql:diff
命令,该命令将为您提供迁移数据库所需的 SQL 语句。您可以使用此功能迭代优化 GraphQL 架构,使其与现有数据库架构相匹配。接下来,您可以在本地开发环境中快速迭代 GraphQL 架构、查询和变更。然后,在满意后,您可以使用
firebase dataconnect:sql:diff
获取 SQL 迁移语句,您可以使用自定义工具和流程将这些语句应用于 PostgreSQL。或者,您也可以先直接对 PostgreSQL 数据库进行更改,然后再尝试将这些更改移植回 GraphQL 架构。我们建议采用 GraphQL-first 方法,因为可能存在不支持架构更改的情况。此外,如果您部署的更改导致 PostgreSQL 架构与已部署的连接器查询或突变不兼容,则这些连接器可能会停止工作或出现异常行为。