Как получить активную аутентифицированную учетную запись gcloud?
С помощью gcloud auth ...
Вы можете добавлять или удалять учетные записи, используемые во время gcloud
команды.
Есть ли способ получить активный аккаунт без grep
и awk
-ную?
gcloud auth list
это хорошо для людей, но недостаточно для машины. Я хочу более чистое решение.
gcloud config list account
также показывает мне подробный вывод:
Your active configuration is: [default]
[core]
account = service@<my_project>.iam.gserviceaccount.com
5 ответов
Я нашел решение:
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
Любые гуглеры, которые могут оставить комментарий, если это разумная особенность / запрос об ошибке / отчет?
Это также, кажется, работает gcloud config get-value account
Обе приведенные ниже команды дадут одинаковый результат:
$ 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
Выход будет таким
$ 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
Откройте консоль gcloud, затем запустите эту команду ниже, она работает для меня gcloud auth list
Команда gcloud, как правило, предназначена для людей, а не для машин.
Что ты пытаешься сделать? Вообще говоря, если вам нужно выполнить программную аутентификацию, вы должны использовать учетные данные приложения по умолчанию и (например) GOOGLE_APPLICATION_CREDENTIALS
Переменная окружения, из которой клиентские библиотеки получают информацию аутентификации.