为什么导出 GOOGLE_APPLICATION_CREDENTIALS 不适用于 `bq`?
Why does exporting GOOGLE_APPLICATION_CREDENTIALS not work with `bq`?
google docs 表示要使用服务帐户的 JSON 密钥的路径导出环境变量 GOOGLE_APPLICATION_CREDENTIALS
,gcloud 将使用它。我无法让它工作。
我的命令是:
GOOGLE_APPLICATION_CREDENTIALS=/home/ubuntu/.config/google-creds.json bq ls
这只会引发一个错误:
You do not currently have an active account selected. Please run:
$ gcloud auth login
to obtain new credentials, or if you have already logged in with a
different account:
$ gcloud config set account ACCOUNT
to select an already authenticated account to use.
gcloud -v
给出:
Google Cloud SDK 92.0.0
bq 2.0.18
bq-nix 2.0.18
core 2016.01.12
core-nix 2015.11.24
gcloud
gsutil 4.16
gsutil-nix 4.15
我做错了什么,我该如何解决?我需要 gsutil
和 bq
才能使用此文件。我正在处理多个项目,因此无法激活任何一个。
你试过了吗gcloud auth activate-service-account
?:
gcloud auth activate-service-account --key-file google-creds.json
(似乎 command-line 工具并没有进入整个凭证发现链,就像 gcloud 在代码中用作库时所做的那样。)
如果您有多个配置(例如auth、project ids)需要使用,您可以设置configurations。例如,如果您有两个要使用的服务帐户凭据 - 称它们为 sa1.json
和 sa2.json
- 您可以执行以下操作:
$ gcloud config configurations create proj1
$ gcloud config configurations activate proj1
$ gcloud auth activate-service-account --key-file sa1.json
$ gcloud config configurations create proj2
$ gcloud config configurations activate proj2
$ gcloud auth activate-service-account --key-file sa2.json
现在,您可以使用 gcloud config configurations activate
命令来设置您想要使用的配置,或者设置 CLOUDSDK_ACTIVE_CONFIG_NAME
环境变量来指定您想要在哪个配置下使用 运行一个命令。即 运行 bq ls
使用 sa1.json
cred:
$ CLOUDSDK_ACTIVE_CONFIG_NAME=proj1 bq ls
以及 sa2.json
信誉:
$ CLOUDSDK_ACTIVE_CONFIG_NAME=proj2 bq ls
google docs 表示要使用服务帐户的 JSON 密钥的路径导出环境变量 GOOGLE_APPLICATION_CREDENTIALS
,gcloud 将使用它。我无法让它工作。
我的命令是:
GOOGLE_APPLICATION_CREDENTIALS=/home/ubuntu/.config/google-creds.json bq ls
这只会引发一个错误:
You do not currently have an active account selected. Please run:
$ gcloud auth login
to obtain new credentials, or if you have already logged in with a different account:
$ gcloud config set account ACCOUNT
to select an already authenticated account to use.
gcloud -v
给出:
Google Cloud SDK 92.0.0
bq 2.0.18
bq-nix 2.0.18
core 2016.01.12
core-nix 2015.11.24
gcloud
gsutil 4.16
gsutil-nix 4.15
我做错了什么,我该如何解决?我需要 gsutil
和 bq
才能使用此文件。我正在处理多个项目,因此无法激活任何一个。
你试过了吗gcloud auth activate-service-account
?:
gcloud auth activate-service-account --key-file google-creds.json
(似乎 command-line 工具并没有进入整个凭证发现链,就像 gcloud 在代码中用作库时所做的那样。)
如果您有多个配置(例如auth、project ids)需要使用,您可以设置configurations。例如,如果您有两个要使用的服务帐户凭据 - 称它们为 sa1.json
和 sa2.json
- 您可以执行以下操作:
$ gcloud config configurations create proj1
$ gcloud config configurations activate proj1
$ gcloud auth activate-service-account --key-file sa1.json
$ gcloud config configurations create proj2
$ gcloud config configurations activate proj2
$ gcloud auth activate-service-account --key-file sa2.json
现在,您可以使用 gcloud config configurations activate
命令来设置您想要使用的配置,或者设置 CLOUDSDK_ACTIVE_CONFIG_NAME
环境变量来指定您想要在哪个配置下使用 运行一个命令。即 运行 bq ls
使用 sa1.json
cred:
$ CLOUDSDK_ACTIVE_CONFIG_NAME=proj1 bq ls
以及 sa2.json
信誉:
$ CLOUDSDK_ACTIVE_CONFIG_NAME=proj2 bq ls