django - 如何拍摄我的 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 读取?如果是这样,怎么做?
解决方案
您正在寻找的是 Datastore托管导出/导入服务:
本页面介绍如何使用托管导出和导入服务在 Datastore 模式实体中导出和导入 Cloud Firestore。托管导出和导入服务可通过 gcloud 命令行工具和 Datastore 模式管理 API(REST、 RPC)获得。
您可以在这些或多或少相关的帖子中看到一些更详细地描述的示例:
您可能需要采取额外的预防措施:
- 如果您需要数据一致性(导出不是原子的)
- 处理实体密钥 ID 中的潜在冲突,尤其是在使用手动生成的 ID 或在其他实体中引用它们时
如果A is not directly accessible to B
实际上不是故意的,并且您可以允许 B 访问 A,那么这也是可能的。可以从任何地方访问数据存储区,甚至可以从 Google Cloud 外部访问(请参阅如何将 Google 数据存储区用于未托管在 google 应用引擎中的 Web 应用程序?)。设置它可能有点棘手,但一旦完成,恕我直言,它是一种比导出/导入更顺畅的共享方法。
推荐阅读
- windows - 使用 .bat 删除除具有特定名称的一个文件之外的所有文件夹和文件
- java - 用于 Java 9 模块的带有 junit-platform-surefire-provider 的 Maven-surefire-plugin
- mysql - 如何在更新执行之前创建触发器?
- shopify - 我们如何在 shopify 中为类别上传多个图像?
- ios - UIView 子类的 Swift 通用方法
- python - 计算做出正确预测的时间有多早
- angular - Angular 6:获取对在 ng-container 标记内使用 *ngFor 创建的组件的引用
- c - 如何有效地从字符列表中提取固定长度的字符串排列?
- c# - 使用 ConfuserEx 时 Newtonsoft JSON 反序列化不起作用
- python - 如何在创建散点图矩阵时更改seaborn中的颜色优先级