在 Datastore 模式下使用 Cloud Firestore

Firestore 是一个 NoSQL 文档数据库,能够自动扩缩、具备出色的性能,并且易于进行应用开发。Firestore 是 Datastore 的最新版本;与 Datastore 相比,这个新版本引入了多项改进功能。

由于 Datastore 模式 Firestore 针对服务器用例和 App Engine 进行了优化,因此,对于主要将由 App Engine 应用使用的数据库,我们建议使用 Datastore 模式 Firestore。原生模式 Firestore 最适合移动和实时通知用例。如需详细了解 Firestore 模式,请参阅选择原生模式或 Datastore 模式

将 Datastore 模式与 App Engine 结合使用

如需将 Datastore 模式与 App Engine 搭配使用,请执行以下操作:

  1. 如果您尚未这样做,请创建数据库并选择“Datastore 模式 Firestore”。

    您可以将现有的 Datastore 数据库与 App Engine 应用搭配使用。这些现有数据库将自动升级为 Datastore 模式 Firestore

  2. 使用 Cloud NDB 在 Datastore 模式数据库中创建、检索和管理实体。

如果您计划将 Python 2 应用升级到 Python 3,则有以下几种选择:

  • 如果您的 Python 2 应用使用 App Engine NDB 与 Datastore 进行交互,我们建议您迁移到 Cloud NDB 而不是 Datastore 模式客户端库,因为前者提供更相似的用户体验。

  • 您还可以选择先将使用 App Engine NDB 的 Python 2 应用移植到 Python 3,然后再迁移到 Cloud NDB。如需了解如何在 Python 3 中访问 App Engine NDB,请参阅“访问 Python 3 的 App Engine 捆绑服务”页面

如需了解其他资源以及有关从使用 App Engine NDB 的 Python 2 webapp 应用迁移到启用了 App Engine NDB 的等效 Python 3 Flask 应用的示例,请参阅“Python 3 的捆绑服务”页面

配置索引

Datastore 模式使用索引来处理应用执行的每个查询。每当实体更改时,这些索引都会更新,因此在应用执行查询时,系统可以快速返回结果。

Datastore 模式会自动创建单属性索引,用于简单类型的查询。对于包含多个属性的复杂查询,您需要在应用的 index.yaml 文件中配置复合索引。

App Engine 开发服务器将使用运行测试所需的复合索引更新 index.yaml 文件。同样,Datastore 模式模拟器可以在您运行测试时生成索引

如果您不运行本地测试或测试不包含复杂查询,您还可以手动将索引添加到应用的 index.yaml 文件。

设置数据库权限

默认情况下,您的应用拥有对 Google Cloud 项目中的 Datastore 模式和 Firestore 数据库执行读写操作所需的所有权限。

为了管理这些权限,每个 App Engine 应用都会使用一个默认服务帐号,该帐号提供对应用所属项目中的 Datastore 模式和 Firestore 数据库的所有读写权限。您可以更改默认服务帐号的权限,但您的应用可能会失去访问权限,除非您分配了拥有所需权限的 IAM 角色。

如需了解如何允许其他用户、应用或项目访问数据库,请参阅访问数据库

价格、配额和限制

Datastore 模式会提供免费配额,但具有每日限制。对于付费帐号,存储、读取和写入操作次数不受限制。如需了解详情,请参阅 Datastore 配额页面。