当我从谷歌云计算实例上的spring boot java应用程序访问云数据存储区时,我收到了503

时间:2015-01-23 20:07:06

标签: java google-cloud-datastore

我正在使用谷歌云数据存储区在谷歌云计算实例上托管的弹簧启动java网络应用程序的概念验证。

这是我做的:

  • 按照入门步骤进行操作 - 注册页面
    • 我没有通过命令行创建我的实例,而是在控制台中创建它们。我确保通过高级设置添加了适当的范围。
    • 另一个区别是我使用了ubuntu图像而不是计算默认值
  • 我从这里获得了演示java代码:https://cloud.google.com/datastore/docs/getstarted/start_java/插入我的@repository
    • 唯一的区别是我删除了命令行代码并硬编码了我的dataset_id
  • 我站起来了数据存储区的gcd本地开发实例,设置了相应的环境变量,并且能够在我的网络应用程序中成功执行java代码。
  • 我把罐子移到我的谷歌云计算vm
    • 我没有设置任何环境变量,因为文档说设置正确的范围应该使java库能够从环境中提取配置
  • 我试图PUT到我的资源(使用@reposoitory)(就像我在本地做的那样),我收到:

        DatastoreException(Backend Error): beginTransaction 503
        com.google.api.services.datastore.client.DatastoreException: Backend Error
            at com.google.api.services.datastore.client.RemoteRpc.makeException(RemoteRpc.java:115)
            at com.google.api.services.datastore.client.RemoteRpc.call(RemoteRpc.java:81)
            at com.google.api.services.datastore.client.BaseDatastoreFactory$RemoteRpc.call(BaseDatastoreFactory.java:41)
            at com.google.api.services.datastore.client.Datastore.beginTransaction(Datastore.java:77)
    
            ... more
    

我在堆栈溢出上研究了类似的其他几个问题,答案是:

  • 您是否按照入门中的步骤操作? (是的,据我所知,我有)
  • 联系谷歌支持,他们修复了一些问题(在我的书中不是一个好的答案。我想在这样的服务中扮演角色并让谷歌调整一些东西而不让我知道如何从现有工具中影响同样的变化不是答案)

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

在Google支持部门将我的数据集ID发送给Ed之后,他发现有一个"零宽度空间"数据集id末尾的unicode字符。

我想我在编写代码时很懒,并从Google Developer Console的项目页面复制了它。

重新键入dataset-id / project-id就可以了。