我无法让我的 Google Compute 实例与 Datastore(在同一个项目中)对话。
我相信我已经正确设置了所有内容:
- Google Compute 实例具有完整的 API 范围
- 项目中已启用所有相关 API
- 计费在项目中启用
教程声称我什至不需要服务帐户即可使用 API,但由于它不起作用,我还尝试设置服务帐户并将密钥文件放在我的实例上。仍然没有运气。
这是我正在尝试运行的代码(我在Test
项目的数据存储区中创建了一个实体,我可以使用 Google 的 API Explorer 和我的帐户的 OAuth2 令牌成功地查找它):
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);
});
这会导致错误403 Forbidden
。如果我注释掉keyFilename
,我会得到401 Unauthorized
相反的结果,这似乎意味着 Google Compute 实例上的魔法授权对我不起作用。
想法?