node.js - Node.js 和 Google Cloud 数据存储入门教程中出现 token 错误

标签 node.js google-app-engine google-compute-engine access-token google-cloud-datastore

我正在使用 google appengine、node.js 和 socket.io 构建一个 web 应用程序,目前我正在尝试设置一个 google 计算实例以使用以下 tutorial 的 google 云数据存储 api 。到目前为止,我已经完成了步骤 1 和 2,但是当在本地运行下载的 adams.js 文件时,我得到以下结果:

Error: No access or refresh token is set.

我尝试过的东西:

  • gcloud auth 登录(这会让我登录 Google,但不会在本地设置我的 token )
  • 更改将 DATASTORE_SERVICE_ACCOUNT 和 DATASTORE_PRIVATE_KEY_FILE 值导出为字符串、纯文本等的方式。
  • 在发生错误之前在线路上记录我的凭据(我肯定缺少 token )
  • 创建新的服务帐户并再次执行 key 创建步骤
  • 然 curl "http://metadata/computeMetadata/v1/instance/service-accounts/default/token "-D "Metadata-Flavor: Google"以获取更多信息。

该命令给了我这个:

<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>

所以我肯定丢失了一个 token ,但由于某种原因我无法弄清楚我应该如何获得它。或者当我的应用程序部署并想要在线访问 API 时我需要存储它。感觉这应该是一件非常容易找到的事情,但由于某种原因,我正在阅读的所有文档都让我陷入困境。任何帮助都会很棒。

最佳答案

如果您的代码在 Google 计算实例上运行,并且该实例具有正确的范围,则无需设置任何环境变量。

您可以通过查看开发者控制台中的实例或询问元数据服务器来确认范围:

curl http://metadata/computeMetadata/v1/instance/service-accounts/default/scopes -H "Metadata-Flavor: Google"

要使用 Cloud Datastore,datastoreuserinfo.email 范围都必须存在。

关于node.js - Node.js 和 Google Cloud 数据存储入门教程中出现 token 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31284450/

相关文章:

node.js - browserify bundle electron app 主进程文件

javascript - Node JS+PostgreSQL : INSERT has more target columns than expressions

javascript - gulp - 将参数传递给 runSequence 中调用的任务

google-app-engine - google appengine 'upload' 指令无法按预期工作

python - 如何在 Google 应用引擎上部署 Celery Worker

apache - 安装 SSL 证书 - Google Compute Engine VM

javascript - Express 不发送最终回复

google-app-engine - 在 App Engine 模块之间共享实体

Google Compute Engine VM 上的 Ubuntu do-release-upgrade

python - 最近启动的 Google Compute Engine VM 的非确定性连接成功