web-dev-qa-db-ja.com

アクティブな認証済みgcloudアカウントを取得するにはどうすればよいですか?

gcloud auth ...を使用すると、gcloudコマンドで使用したアカウントを追加または削除できます。

grep- ingおよびawk- ingなしでアクティブなアカウントを取得する方法はありますか?

gcloud auth listは人間には適していますが、機械には十分ではありません。よりクリーンなソリューションが必要です。

gcloud config list accountは、出力を詳細に表示することも示しています。

Your active configuration is: [default]

[core]
account = service@<my_project>.iam.gserviceaccount.com
11

私は解決策を見つけました:

gcloud config list account --format "value(core.account)"

これはあなたに言うでしょう:

Your active configuration is: [default]

service@<my_project>.iam.gserviceaccount.com

アクティブな構成メッセージを回避するために、stderrを/dev/nullにリダイレクトできます。

$ gcloud config list account --format "value(core.account)" 2> /dev/null
service@<my_project>.iam.gserviceaccount.com

この場合、--verbosityも機能してinfoメッセージを削除できれば便利です。つまり、次のことを意味します。

$ gcloud config list account --format "value(core.account)" --verbosity error

これが妥当な機能/バグリクエスト/レポートである場合にコメントを投稿できるGoogle社員はいますか?

17

これもうまくいくようですgcloud config get-value account

6
aclokay

以下のこれらのコマンドはどちらも同じ結果になります。

$ gcloud config get-value account
$ gcloud config list --format 'value(core.account)'

ただし、アカウントを外部でアクティブ化するように設定する場合は、 jsonキー で実行できます。

#!/bin/bash
if [[ ! $(gcloud config get-value account &> /dev/null) ]]
then
    GCP_SA_KEY=<json credential key>
    GCP_ACCOUNT=service@<my_project>.iam.gserviceaccount.com 
    if [ -z $GOOGLE_APPLICATION_CREDENTIALS ]
    then
        echo $GCP_SA_KEY > google-app-creds.json
        export GOOGLE_APPLICATION_CREDENTIALS=$(realpath google-app-creds.json)
        gcloud auth activate-service-account $GCP_ACCOUNT --project=<my_project> \
        --key-file=$GOOGLE_APPLICATION_CREDENTIALS
    fi
fi

Ouputはこのようになります

$ bash /path/to/the/above/file
Activated service account credentials for: [service@<my_project>.iam.gserviceaccount.com] 

To take a quick anonymous survey, run: 
  $ gcloud alpha survey

$ gcloud config get-value account
service@<my_project>.iam.gserviceaccount.com
2
Chetabahana

Gcloudコマンドは通常、マシンではなく、人間が消費することを目的としています。

あなたは何をしようとしているのですか?一般的に、プログラムで認証する必要がある場合は、 アプリケーションのデフォルトの資格情報 および(たとえば)GOOGLE_APPLICATION_CREDENTIALS環境変数を使用します。これは クライアントライブラリ 認証を取得します。からの情報。

0
jerjou