Google コンピューティング インスタンスがデータストアと通信できません (同じプロジェクト内で)。
すべてを正しく設定したと思います:
- Google Compute インスタンスには完全な API スコープがあります
- 関連するすべての API がプロジェクトで有効になっている
- プロジェクトで課金が有効になっている
チュートリアルでは、API を使用するためにサービス アカウントさえ必要ないと主張していますが、機能しなかったため、サービス アカウントをセットアップして、インスタンスにキー ファイルを配置しようとしました。まだ運がありません。
実行しようとしているコードは次のとおりです (Testプロジェクトのデータストアにエンティティを作成しました。アカウントの OAuth2 トークンを使用して、Google の API エクスプローラーを使用して正常に検索できます)。
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 インスタンスの魔法の承認が機能していないことを意味しているようです。
アイデア?