Java中的Bigtable身份验证
Posted
技术标签:
【中文标题】Java中的Bigtable身份验证【英文标题】:Bigtable authentication in java 【发布时间】:2015-12-01 11:58:54 【问题描述】:我正在寻找一种在 Bigable 中进行身份验证的替代方法。 默认方法涉及环境变量,这与我有关。
我找到了GoogleCredential
类。它可以使用fromStream读取json密钥文件,但是如何使用GoogleCredential
的新实例。
没有办法setApplicationDefault()
。我需要以某种方式覆盖它。
HBase 代码对GoogleCredential
一无所知。
【问题讨论】:
CBT 代码确实知道凭据。不要设置配置变量。我们使用 applicationDefault 作为获取凭据的主要方法(即通过 gcloud auth 命令设置的凭据)。见github.com/GoogleCloudPlatform/cloud-bigtable-client/blob/… 和github.com/GoogleCloudPlatform/cloud-bigtable-client/blob/… 快速入门强制您使用环境变量,但我有一个拉取请求来删除该检查:github.com/GoogleCloudPlatform/cloud-bigtable-examples/pull/116 【参考方案1】:编辑 2016 年 12 月 6 日
默认身份验证现在需要gcloud auth application-default login
才能使用您的用户帐户进行 API 调用。你也可以这样做:
$ gcloud iam service-accounts create my-account
$ gcloud iam service-accounts keys create key.json
--iam-account=my-account@my-project.iam.gserviceaccount.com
$ export GOOGLE_APPLICATION_CREDENTIALS=key.json
$ ./my_applicaiton.sh
旧文本
对于大多数情况,默认身份验证就足够了。如果您已经完成了 gcloud init
或它的前身 gcloud auth login
,那么通常应该就足够了。 (编辑 - gcloud beta auth application-default login
现在用于 API 访问)。
在某些特殊情况下它不会出现,例如,如果您在 Docker 容器中本地运行。那么您的默认身份验证将无法正确设置,您需要设置GOOGLE_APPLICATION_CREDENTIALS
。
为了完整起见,如果您正在进行一些跨项目活动,也可以在您的hbase-site.xml
文件中设置google.bigtable.auth.json.keyfile
键,但这应该非常少见。
【讨论】:
hbase-site.xml 属性正是我所寻找的。它的值是对 FileInputStream 的馈送,因此可以使用相对路径。以上是关于Java中的Bigtable身份验证的主要内容,如果未能解决你的问题,请参考以下文章