Google compute engine google clouddatastore adams.py演示在GCE实例中不起作用

Google compute engine google clouddatastore adams.py演示在GCE实例中不起作用,google-compute-engine,google-cloud-datastore,Google Compute Engine,Google Cloud Datastore,从google-cloud-datastore-1beta2-rev1-2.1.1运行演示时/ adams.py <project-id> ERROR:root:Error while doing datastore operation ERROR:root:RPCError: beginTransaction Unauthorized. ERROR:root:HTTPError: 403 Forbidden adams.py 错误:root:执行数据存储操作时出错 错误

从google-cloud-datastore-1beta2-rev1-2.1.1运行演示时/

    adams.py <project-id>

ERROR:root:Error while doing datastore operation
ERROR:root:RPCError: beginTransaction Unauthorized.
ERROR:root:HTTPError: 403 Forbidden
adams.py
错误:root:执行数据存储操作时出错
错误:root:RPCError:beginTransaction未经授权。
错误:root:HTTPError:403禁止
  • 我确保GCE实例已启用服务帐户(权限如下)
  • 在项目的云控制台中启用云数据存储API
  • 谷歌云数据存储已正确安装在GCE中
  • 因为我在GCE实例中,所以不需要私钥文件
  • 权限 用户信息已启用 计算读写 储存满 已启用任务队列 启用BigQuery 启用云SQL


    我错过了什么?请帮助添加答案,以便其他人更容易找到:

    确保您的GCE实例在启用数据存储范围的情况下运行

    运行命令
    gcutil getinstance
    。你应该得到这样的东西:

    +-----------------+-------------------------------------------------------------+ | name | <my-instance> | | .... | | | service-account | | | scopes | [u'https://www.googleapis.com/auth/datastore', | | | u'https://www.googleapis.com/auth/userinfo.email'] | +-----------------+-------------------------------------------------------------+
    您的服务帐户是否启用了数据存储范围?您可以通过调用
    gcutil getinstance
    并查看列出的范围来检查这一点。是的,数据存储范围丢失,现在已解决。Thxy您可能还想看看它的工作,其中提到您仍然无法在云控制台Gui中设置数据存储范围,也无法在设置后对其进行更改。请注意,现在可以通过单击“显示高级选项”在云控制台中为新的GCE实例启用云数据存储项目访问在实例创建期间,将“云数据存储”下拉列表设置为“已启用”。 gcutil --project <PROJECT_ID> addinstance <INSTANCE_NAME> --service_account_scopes=\ https://www.googleapis.com/auth/userinfo.email,\ https://www.googleapis.com/auth/datastore