Как использовать несколько учетных записей служб с gcloud?
у меня есть два аккаунта Google Cloud service; по одному для каждого из моих двух проектов.
# ACCOUNTS
editor@someproj-1.iam.gserviceaccount.com
editor@someproj-2.iam.gserviceaccount.com
Я могу сказать gcloud
на счету которой мне нужно использовать перед выполнением команды:
gcloud set account [ACCOUNT]
вопрос: есть ли способ настроить gcloud
и gsutil
так что они будут использоваться для операций, выполняемых в их соответствующем проекте, без необходимости переключаться между этими учетными записями вручную все время?
Я управляю экземпляры в одном проекте, и я загружаю / загружаю файлы из ведер в другом проекте. Это становится довольно утомительным, чтобы выполнить gcloud set_account [ACCOUNT]
все время между командами.
мне нужно запускать длительные команды в обоих проектах одновременно, что заставляет меня думать, что я упаду в яму, если я активирую/деактивирую учетные записи, используемые для этих команд.
возможно, мой единственный вариант-запустить google-cloud-sdk из двух разных контейнеров Docker?
1 ответов
у вас есть несколько вариантов здесь:
-
Cloud SDK уважает переменные среды, задающие свойства.
gcloud config set account
- это сокращение дляgcloud config set core/account
, поэтому соответствующее свойствоCLOUDSDK_CORE_ACCOUNT
.вы можете сделать что-то вроде:
$ CLOUDSDK_CORE_ACCOUNT=email1@domain1.com gcloud ... $ CLOUDSDK_CORE_ACCOUNT=email2@domain2.com gcloud ...
который должен дать вам результат, который вас интересует.
-
Если вам нужно изменить более одного свойства, Cloud SDK предлагает имени настройки абстракция. См. документы для получения полной информации, но вы можете запустить:
$ gcloud config configurations create my-project1-config $ gcloud config configurations activate my-project1-config $ gcloud auth login # or activate-service-account $ gcloud config set project project1 # and any other configuration you need to do $ $ gcloud config configurations create my-project2-config $ gcloud config configurations activate my-project2-config $ gcloud auth login # or activate-service-account $ gcloud config set project project2 # and any other configuration you need to do $ $ CLOUDSDK_ACTIVE_CONFIG_NAME=my-project1-config gcloud ... $ CLOUDSDK_ACTIVE_CONFIG_NAME=my-project2-config gcloud ...
-
в самом крайнем случае вы можете поддерживать отдельные каталоги конфигурации Cloud SDK. Значение по умолчанию (on *nix) -
~/.config/gcloud
:$ CLOUDSDK_CONFIG=/tmp/tmpconfig1 gcloud auth login $ CLOUDSDK_CONFIG=/tmp/tmpconfig2 gcloud auth login