首页 > 解决方案 > 如何拍摄我的 Google App Engine 应用程序的状态并将其上传到单独的 Google Cloud Storage?

问题描述

我正在建立两个 Google App Engine 应用程序(A 和 B)需要共享数据的关系。B 需要从 A 读取数据,但 B 无法直接访问 A。A 和 B 目前都使用 Google Datastore(不是永久性磁盘)。

我知道在哪里拍摄 A 的状态快照并将其上传到单独的 Google Cloud Storage 位置。这个位置可以被 B 读取。

是否可以使用 Google App Engine 拍摄 A 的快照并将此快照(可能以 JSON 格式)上传到单独的 Google Cloud Storage 位置以供 B 读取?如果是这样,怎么做?

标签: djangogoogle-app-enginegoogle-cloud-storagesnapshot

解决方案


您正在寻找的是 Datastore托管导出/导入服务

本页面介绍如何使用托管导出和导入服务在 Datastore 模式实体中导出和导入 Cloud Firestore。托管导出和导入服务可通过 gcloud 命令行工具和 Datastore 模式管理 API(RESTRPC)获得。

您可以在这些或多或少相关的帖子中看到一些更详细地描述的示例:

您可能需要采取额外的预防措施:

  • 如果您需要数据一致性(导出不是原子的)
  • 处理实体密钥 ID 中的潜在冲突,尤其是在使用手动生成的 ID 或在其他实体中引用它们时

如果A is not directly accessible to B实际上不是故意的,并且您可以允许 B 访问 A,那么这也是可能的。可以从任何地方访问数据存储区,甚至可以从 Google Cloud 外部访问(请参阅如何将 Google 数据存储区用于未托管在 google 应用引擎中的 Web 应用程序?)。设置它可能有点棘手,但一旦完成,恕我直言,它是一种比导出/导入更顺畅的共享方法。


推荐阅读