使用 Firestore 可为 Cloud Run 服务设置可扩缩的 NoSQL 云数据库。Firestore 是一种灵活且可伸缩的 NoSQL 数据库,适用于进行移动端、Web 和服务器开发。
您可以使用本页面介绍的 Cloud Run 集成将 Cloud Run 服务快速连接到新的 Firestore 数据库。
准备工作
- 确保您要集成的 Cloud Run 服务已部署完毕。
- 查看 Firestore 价格页面。您需要为集成中使用的各个资源付费。
所需的角色
如需使用 Cloud Run 集成,您或您的管理员必须向两个不同的主账号授予 IAM 角色。
点击查看您的 Google 账号需要的角色
如需获得使用 Cloud Run 集成所需的权限,请让您的管理员向您的 Google 账号授予项目的以下 IAM 角色:
- Cloud Run Developer (
roles/run.developer
) - Compute Viewer (
roles/compute.viewer
) - Serverless Integrations Developer (
roles/runapps.developer
) - Serverless Integrations Operator (
roles/runapps.operator
) - Service Account User (
roles/iam.serviceAccountUser
)
点击查看服务账号需要的角色
如需部署 Cloud Run 服务,您可以使用系统自动创建的 Compute Engine 默认服务账号,也可以指定用户管理的服务账号。服务账号必须具有以下角色:
- Cloud Run Developer (
roles/run.developer
) - Logs Bucket Writer (
roles/logging.bucketWriter
) - Service Account User (
roles/iam.serviceAccountUser
) - Storage Admin (
roles/storage.admin
) - Firestore Admin (
roles/firestore.admin
) - Project IAM Admin (
roles/projectIAM.admin
)
将服务连接到新的 Firestore 数据库
任何配置更改都会导致新修订版本的创建。后续修订版本也将自动采用此配置设置,除非您进行了明确更新。
您可以使用控制台或命令行将 Cloud Run 服务连接到 Firestore 数据库。
控制台
在 Google Cloud 控制台中,转到 Cloud Run 页面。
在服务列表中,点击要在此集成中使用的服务。
点击 Integrations(集成)标签。
点击添加集成。
点击 Firestore 数据库。
使用默认名称,或者将名称更改为您要使用的值。
如果系统提示您启用 API 列表,请点击启用并等待 API 启用。
在资源下,记下此集成后将创建的新资源。
点击提交,然后等待集成和资源创建完成。此过程最多可能需要 15 分钟。
命令行
更新到最新的 Google Cloud CLI:
gcloud components update
创建集成:
gcloud beta run integrations create \ --type=firestore \ --service=SERVICE \
您需要在其中:
- 将 SERVICE 替换为您的 Cloud Run 服务的名称。
(可选)添加
--service-account=SERVICE_ACCOUNT_EMAIL
标志。将 SERVICE_ACCOUNT_EMAIL 替换为用于部署服务的用户管理的服务账号电子邮件地址 (
PROJECT_NUMBER-compute@developer.gserviceaccount.com
)。如果要使用默认计算服务账号 (SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com
),请省略此标志。如需在部署 Cloud Run 集成时继续使用指定的服务账号,请运行以下命令:
gcloud config set runapps/deployment-service-account
等待最多 15 分钟,在此期间,系统会创建并连接一个完全配置的 Firestore 数据库。此外,系统还会创建新的 Cloud Run 修订版本,包括用于标识数据库的环境变量。该过程完成后,系统会显示以下消息:
[firestore] integration [firestore-xxx] has been updated successfully. To connect to the Firestore database, utilize the environment variable `FIRESTORE_DB_NAME`. This variable is added to the Cloud Run service for you.
您可以运行
gcloud beta run integrations describe
来检查状态。
查看 Firestore 数据库集成
如需查看 Cloud Run 服务的 Firestore 数据库集成的当前状态,请执行以下操作:
控制台
在 Google Cloud 控制台中,转到 Cloud Run 页面。
在服务列表中,点击要在此集成中使用的服务。
点击 Integrations(集成)标签。
找到相关 Firestore 数据库集成,然后点击查看详情。
命令行
使用以下命令获取可用集成的列表:
gcloud beta run integrations list
使用返回列表中的名称显示它的详细信息:
gcloud beta run integrations describe INTEGRATION_NAME
将 INTEGRATION_NAME 替换为您的 Firestore 数据库集成的名称。
删除 Firestore 数据库集成
如果删除集成,则系统还会删除与该集成关联的所有 Google Cloud 资源,但不会删除 Cloud Run 服务。
如需从 Cloud Run 服务中删除 Firestore 数据库集成,请执行以下操作:
控制台
在 Google Cloud 控制台中,转到 Cloud Run 页面。
点击要删除集成的服务。
点击 Integrations(集成)标签。
找到您感兴趣的 Firestore 数据库集成,点击集成右侧的省略号图标,然后点击删除。
命令行
使用以下命令获取可用集成的列表:
gcloud beta run integrations list
使用返回列表中的名称删除集成:
gcloud beta run integrations delete INTEGRATION_NAME
您需要在其中:
- 将 INTEGRATION_NAME 替换为您的 Firestore 数据库集成的名称。
(可选)您可以使用以下标志选项:
选项 说明 --service-account
用于执行删除操作的用户管理的服务账号电子邮件地址。
在代码中访问 Firestore 数据库
完成集成后,Cloud Run 会自动添加环境变量 FIRESTORE_DB_NAME
,以便在 Cloud Run 服务代码中使用。
使用 Firestore 的服务示例代码
如需查看 Cloud Run 和 Firestore 代码示例,请参阅 Firestore 文档。
限制
- Cloud Run 集成仅在某些区域受支持。如果您需要使用 Cloud Run 集成不支持的区域,请参阅使用服务器端客户端库。
- Firestore 默认数据库不受支持。此集成仅支持创建命名的 Firestore 数据库。