谷歌clouddatastore adams.py演示无法在GCE实例中工作

时间:2014-04-10 19:38:48

标签: 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
  1. 我确保GCE实例启用了服务帐户(以下权限)
  2. 在项目的云控制台中启用云数据存储API
  3. google cloud数据存储区已正确安装在GCE中
  4. 因为我在GCE实例中,所以我不需要私钥文件
  5. 权限 用户信息已启用 计算读写 存储已满 任务队列已启用 BigQuery已启用 Cloud SQL已启用

    我错过了什么?请帮助

1 个答案:

答案 0 :(得分:3)

添加答案,以便其他人更容易找到:

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

运行命令gcutil getinstance <my-instance>。你应该得到这样的东西:

+-----------------+-------------------------------------------------------------+
| name            | <my-instance>                                               |
| ....            |                                                             |
| service-account |                                                             |
|   scopes        | [u'https://www.googleapis.com/auth/datastore',              |
|                 | u'https://www.googleapis.com/auth/userinfo.email']          |
+-----------------+-------------------------------------------------------------+

重要的是,请确保您在列表中看到datastore范围。

创建实例时,请务必enable the correct scope

gcutil --project <PROJECT_ID> addinstance <INSTANCE_NAME> --service_account_scopes=\
https://www.googleapis.com/auth/userinfo.email,\
https://www.googleapis.com/auth/datastore