Google compute engine 如何配置project和gcloud以连接到数据存储?

Google compute engine 如何配置project和gcloud以连接到数据存储?,google-compute-engine,gcloud,google-cloud-datastore,gcloud-node,Google Compute Engine,Gcloud,Google Cloud Datastore,Gcloud Node,我无法让我的Google Compute实例与数据存储(在同一个项目中)对话 我相信我已经正确地设置了一切: Google Compute实例具有完整的API范围 项目中已启用所有相关API 项目中已启用计费 教程声称我甚至不需要一个服务帐户来使用API,但由于它不起作用,我也尝试设置一个服务帐户,并将密钥文件放在我的实例上。还是不走运 下面是我试图运行的代码(我在项目的数据存储中创建了一个测试实体,我可以使用Google的API explorer为我的帐户使用OAuth2令牌成功地查找它)

我无法让我的Google Compute实例与数据存储(在同一个项目中)对话

我相信我已经正确地设置了一切:

  • Google Compute实例具有完整的API范围
  • 项目中已启用所有相关API
  • 项目中已启用计费
教程声称我甚至不需要一个服务帐户来使用API,但由于它不起作用,我也尝试设置一个服务帐户,并将密钥文件放在我的实例上。还是不走运

下面是我试图运行的代码(我在项目的数据存储中创建了一个
测试
实体,我可以使用Google的API explorer为我的帐户使用OAuth2令牌成功地查找它):

这将导致错误
403禁止
。如果我把
keyFilename
注释掉,我会得到
401个未经授权的
,这似乎意味着谷歌计算实例上的魔法授权对我不起作用


想法?

哪些范围必须添加到实例中?您添加了这里提到的那些吗:?只是为了回应Vilas的评论:选中UI中的“允许API访问所有…”框不会添加数据存储所需的所有范围。如果在实例上运行“gcloud compute instances description”,您会看到什么作用域?文档暗示它是“所有API”,并且在使用此应用程序时不允许我选择单个作用域,这使得奇怪的是,还需要其他作用域。。。这是实例的作用域:
https://www.googleapis.com/auth/cloud-platform
我同意这是不幸的,但云数据存储API除了或范围之外还需要范围。好吧,我不知道这一点。我建议在教程中添加一个“Note:”部分,因为其他所有内容都意味着可以只使用“everything”范围。方法
const gcloud = require('gcloud')({
  projectId: 'roger-web-client',
  keyFilename: './roger-web-client-8d1fbd8baae2.json',
});

const dataset = gcloud.datastore.dataset();

dataset.get(dataset.key(['Test', 5629499534213120]), (error, entity) => {
  console.log(error || entity);
});