如何为Google Compute Engine设置GOOGLE_APPLICATION_CREDENTIALS?

10
我有Google Compute Engine的凭证文件,已将其重命名为key.json。下一步是设置名为GOOGLE_APPLICATION_CREDENTIALS的环境变量。但是提示错误:从环境变量GOOGLE_APPLICATION_CREDENTIALS... path...读取凭据文件时出错。从流中读取凭据时出错,“type”字段未指定。
我想知道如何在Eclipse中设置变量GOOGLE_APPLICATION_CREDENTIALS?
代码示例: httpTransport = GoogleNetHttpTransport.newTrustedTransport(); GoogleCredential credential = GoogleCredential.getApplicationDefault();
3个回答

9
您之所以出现错误,是因为您下载了OAuth 2.0客户端ID而不是服务帐号密钥。
如果您想使用常规用户凭据作为应用程序默认值,您现在可以使用gcloud beta auth application-default login命令启动网络登录流程。这将把它们放置在应用程序默认凭据的众所周知位置,因此如果您使用此方法,应取消设置GOOGLE_APPLICATION_CREDENTIALS变量。

2
如果您正在使用Tomcat(虽然这在任何情况下都是有效的),您必须搜索“启动配置”,在“环境”选项卡中,您可以添加变量及其值。在图像中,您可以看到我从Tomcat概述中访问了“启动配置”。
另一种选择是使用GoogleCredentials.fromStream(“path_to_json”)来设置凭据,具体取决于哪个API在哪里使用。
请参见以下图片,其中显示了如何从Tomcat概述中访问启动配置:launch configuration from tomcat overview

-5

这个问题可以通过阅读文档来解决。截至2016年3月15日:

检查环境变量GOOGLE_APPLICATION_CREDENTIALS。如果指定了此变量,它应该指向定义凭据的文件。

文档详细说明了如何创建这样的文件。

至于如何在eclipse中设置它,它是一个环境变量,您应该搜索Eclipse文档,以了解如何为要运行的任务设置环境变量。


4
这并没有回答问题。我遇到了这个错误,并已将变量设置为指向我从Google Cloud API管理器屏幕下载的凭据文件(即https://console.cloud.google.com/apis/credentials?project=my-project-name)。从这个来源获取的文件,根本*不包含*“type”属性。 - Jules

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接