当前位置: 首页 > 面试题库 >

通过Cloud Datastore API连接到开发中的AppEngine数据存储

笪建章
2023-03-14
问题内容

我们目前正在运行组合的AppEngine /
GCE应用程序,到目前为止,我们所有的数据存储访问都保留在AppEngine方面。现在,我们正在探索还允许我们的GCE实例对(共享)数据存储区进行一些查询。首先,我试图弄清楚如何在本地运行事物。到目前为止,我们拥有:

  • Go devappserver运行
  • Go独立二进制文件,它希望向devappserver数据存储区发出查询。
  • 我们安装了(“获取”)google-api-go-client / datastore / v1beta2,以便我们可以使用API​​而不是直接发出HTTP调用。但是,如果此API库在开发中无法使用,我们绝对愿意直接发出HTTP调用
  • 我们已经设置了服务帐户(我们已经从GCE访问GCS),但是我怀疑这与在本地运行是否相关…

我看过一些文档,但他们(a)仅谈论Python和Java,并且(b)讨论连接到(独立的)开发数据存储区服务器,而不是嵌入到AppEngine的devappserver中的数据存储区(如果两者甚至不同?)。


问题答案:

当前,由于多种原因,这在开发环境中是不可能的。Google Cloud Datastore工具( gcd.sh
)使用Java开发服务器。但是,在开发go for App
Engine时,您使用的是python开发服务器,该服务器具有不同的基础存储。在github页面上有一个跟踪此问题的错误。

您仍然可以在go中开发Google Cloud
Datastore应用程序,但是当前的go客户端库中存在许多错误。不幸的是,开发服务器当前不支持go库使用的JSON
API(请参阅页面顶部的注释)。

更新
:我想确保proppy的评论被视为答案的一部分。他的建议确实提供了使用API​​协议版本的方法,该方法可能比上面的go客户端库更稳定。它还可以让您使用该gcd.sh工具在开发服务器中对此进行测试。不过,您将必须自己设计HTTP请求,并且您将无法在应用程序和开发中的Cloud
Datastore之间共享数据存储中的数据。但是,这绝对是一个很好的解决方法,可以让您使用Cloud DatastoreAPI,随着它的发展,它比其他解决方法更容易使用。从proppy:

请注意,您仍然可以将Cloud Datastore Protobuf HTTP
API与Go结合使用。protobuf定义在GitHub上可用,您可以使用Go protobuf编译器插件将其编译为Go代码,然后将POST
HTTP请求发送到 /datastore/{version}/datasets/{datasetId}/{method}



 类似资料:
  • ap.sendSocketMessage(OPTION, CALLBACK) 通过 WebSocket 连接发送数据,需要先 ap.connectSocket,并在 ap.onSocketOpen 回调之后才能发送。 OPTION 参数说明 名称 类型 必选 描述 data String/ArrayBuffer 否 请求的参数 代码示例 <script src="https://gw.alipay

  • 我正在尝试通过JDBC连接到使用Eclipse(版本Juno)的IBMDB2数据库。我已经将驱动程序(外部jar文件)添加到我的项目中,并且驱动程序已正确加载… 我还知道连接数据(数据库路径、用户名、密码)是正确的。但我得到一个java.lang.NoClassDefFoundError: 项目属性肯定有问题但是我真的不知道去哪里找。

  • 我在控制台中不断得到关于时区的相同错误,但我从未尝试在代码中设置时区。 控制台中的错误消息: 连接失败!检查输出consolejava.sql.sqlexception:服务器时区值“pdt”无法识别或表示多个时区。如果要利用时区支持,则必须配置服务器或JDBC驱动程序(通过serverTimezone配置属性)以使用更指定的时区值。

  • 我在一个网站上工作,这是用来重置LDAP用户的密码。我无法通过SSL与服务器建立连接。我尝试了各种代码和身份验证类型。 这是服务器上用于与网站所在的LDAP连接的内容。我还用两个ssl端口测试了它。636和3269。 我在网站上使用以下代码 获取异常“LDAP服务器不可用”。我尝试了389端口和没有ssl的代码,它工作得很好。 请让我知道哪里出了问题。

  • 这是我得到的错误堆栈跟踪... 无法连接到mydb。创建到mydb的SQL模型连接连接时出错。(错误:oracle.jdbc.OracleDRiver)oracle.jdbc.OracleDRiver创建到mydb的JDBC连接时出错。(错误:oracle.jdbc.OracleDRiver)oracle.jdbc.OracleDRiver。 我正在使用oracle瘦驱动程序连接到数据库。。 SI

  • 用Python来编写网站,必须要能够通过python操作数据库,所谓操作数据库,就是通过python实现对数据的连接,以及对记录、字段的各种操作。上一讲提到的那种操作方式,是看官直接通过交互模式来操作数据库。 安装python-MySQLdb 要想通过python来操作数据库,还需要在已经安装了mysql的基础上安装一个称之为mysqldb的库,它是一个接口程序,python通过它对mysql数据