我的nodejs目录看起来像这样:
MyApp
-app.js
-mycredetnials.json
-package.json
+node_modules
在我的app.js文件中,我有以下代码:;
var options = {
projectId: 'mydatastoreproject'
}
var keyFile = './mydatastoreprojectsandbox-5265e25422c.json';
if (keyFile) {
options.keyFilename = keyFile;
}
var datastore = gcloud.datastore(options);
我是从本地计算机上运行的。我希望我的本地计算机能够连接到Google Cloud Datastore(而不是本地模拟器)。
在我的开发者控制台中,我启用了Google Datastore API。我在开发者控制台中创建了一个KIND并创建了一个实体。我还以json文件的形式创建了凭据(服务帐户密钥)。然后我在我的代码中包含了这个json文件。通过这样做,我仍然无法连接到数据存储区。我错过了什么或做错了什么?基本上我想做的就是让我的本地机器连接到Google数据存储区。
答案 0 :(得分:1)
当你启动本地数据存储区并打印出来时,设置这些环境变量",你做到了吗?到目前为止,您是如何连接到本地数据存储区的?默认情况下,gcloud-node尝试与远程API通信,并假设没有运行模拟器。必须告诉它与模拟器通信,这可以通过env var(DATASTORE_EMULATOR_HOST
)完成。如果这是您设置的内容,则必须取消设置(或者从JS脚本手动执行此操作:delete process.env.DATASTORE_EMULATOR_HOST;
)。
(完整答案:https://github.com/GoogleCloudPlatform/gcloud-node/issues/1328)
答案 1 :(得分:0)
我没有尝试过ptyhon,但我认为这对你也有用。
我尝试使用go并使用this library,您应该安装gcloud并使用gcloud beta auth application-default login
从控制台登录,这解决了很多头痛,我发现它意外地阅读{{ 3}}
答案 2 :(得分:0)
假设mydatastoreprojectsandbox-5265e25422c.json
是您的google服务api密钥,听起来像您已经有了所需的声音。
如果没有,您可以通过以下链接获取Google Service API密钥: https://console.cloud.google.com/apis/credentials/serviceaccountkey?_ga=fuckuranalytics
Google Service API密钥.json
文件使您的localhost节点/ npm项目能够与真正的远程google数据存储区实例连接。用于访问数据存储的节点库会自动检查系统上的环境变量,其中包含此密钥文件的路径。如果设置正确,则您的本地节点/ npm项目将自动连接到您的密钥文件可以访问的远程google数据存储。
可以通过以下方式设置环境变量:
Mac / Linux(通过命令行)
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/my-key.json"
Windows(通过Powershell)
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\my-key.json"
有关Google数据存储区和node / npm的环境变量auth的更多信息: https://cloud.google.com/docs/authentication/getting-started#linux-or-macos