【问题标题】:Communication with Datastore and cloud Storage from google Compute engine in Java从 Java 中的谷歌计算引擎与 Datastore 和云存储进行通信
【发布时间】:2014-02-01 19:18:16
【问题描述】:

我有一个 GAE 应用程序,它在 Google Cloud Datastore 中创建一些数据并将一些二进制文件存储到 Google Cloud Storage 中 - 我们将应用程序称为 WebApp

现在我在 Google Cloud Storage Google 计算引擎上运行了一个不同的应用程序。我们将应用程序称为 ComputeApp

现在,ComputeApp 应该连接到 Datastore,查询 WebApp 创建的实体并从 Google Cloud Storage 读取相关的二进制文件。然后 CoumputeApp 对二进制文件进行一些处理,例如重新编码为不同的格式并将其存储回 Cloud Storage 并更新 Datastore 中的相关实体。

现在让我描述一个问题:

ComputeApp 如何与 DataStore 通信? (我为此使用 Objectify) 我发现的唯一方法是 GAE Remote API for Java。它在连接到我在本地运行的 WebApp 时有效,但在连接到我在 GAE 中部署的 WebApp 时无效。原因大概描述为here。但我不知道python,所以我不理解所描述的解决方案。 我的 ComputeApp 是否有其他可能的方式与 GAE 数据存储服务进行通信?

非常感谢!

编辑:我纠正了我的错字,因为 proppy 正确指出。

【问题讨论】:

  • “现在我在 Google Cloud Storage 上运行了一个不同的应用程序。” 我假设您的意思是在 Google Compute Engine 上运行

标签: java google-app-engine google-compute-engine google-cloud-datastore


【解决方案1】:

您可以使用 Google Cloud Datastore API(目前为预览版)从 Compute Engine 连接到数据存储区

目前不支持像 Objectify 这样的 App Engine Java 客户端库,仅支持基于 protobuf 的低级 Java API:请参阅Getting Started Guide for Java

我在 public issue tracker 上创建了一个问题,因为这是工程团队将来有兴趣支持的内容。

【讨论】:

    【解决方案2】:

    这个开源API(使用Json API)比protocol buffer api简单

    https://github.com/JavaMonday/gcd-json-java

    示例用法:

    List<Foo> list = ds.gqlQuery(Foo.class).queryString("SELECT * FROM Foo").list();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-07
      • 1970-01-01
      • 2016-06-17
      • 1970-01-01
      • 2018-05-11
      • 2013-05-17
      • 2018-05-09
      • 1970-01-01
      相关资源
      最近更新 更多