2つのGoogle Cloudサービスアカウントがあります。 2つのプロジェクトごとに1つ。
# ACCOUNTS
[email protected]
[email protected]
コマンドを実行する前に、使用する必要があるアカウントをgcloud
に伝えることができます。
gcloud set account [ACCOUNT]
質問:gcloud
とgsutil
を設定して、それらを切り替えることなくそれぞれのプロジェクトで実行される操作に使用できるようにする方法はありますか常に手動でアカウント?
1つのプロジェクトでインスタンスを管理しており、別のプロジェクトのバケットからファイルをアップロード/ダウンロードしています。コマンドの合間に常にgcloud set_account [ACCOUNT]
を実行しなければならないのは非常に退屈です。
両方のプロジェクトで長時間実行されるコマンドを同時に実行する必要があるため、これらのコマンドに使用されるアカウントをアクティブ化/非アクティブ化すると、ピットに落ちると思われます。
おそらく私の唯一のオプションは、2つの異なるDockerコンテナからgoogle-cloud-sdkを実行することですか?
ここにはいくつかのオプションがあります:
Cloud SDKは、プロパティを指定する環境変数を尊重します。 gcloud config set account
はgcloud config set core/account
の省略形であるため、対応するプロパティはCLOUDSDK_CORE_ACCOUNT
です。
次のようなことができます:
$ [email protected] gcloud ...
$ [email protected] gcloud ...
興味のある結果が得られるはずです。
複数のプロパティを変更する必要がある場合、Cloud SDKは named configuration abstractionを提供します。詳細についてはドキュメントをご覧ください。ただし、次を実行できます。
$ 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構成ディレクトリを維持できます。デフォルト(* nix)は~/.config/gcloud
です:
$ CLOUDSDK_CONFIG=/tmp/tmpconfig1 gcloud auth login
$ CLOUDSDK_CONFIG=/tmp/tmpconfig2 gcloud auth login
Zacharyの答えは非常に便利ですが、gcloudの構成を使用する簡単な方法があります。
gcloud config configurations list
を実行して、構成のリストを表示します。まだ作成していない場合は、アクティブな現在のアカウント、プロジェクトなど、default
がリストされます。
gcloud config configurations create [config name]
を使用して新しい構成を作成します。
> gcloud config configurations create testconfig
Created [testconfig].
Activated [testconfig].
これで新しい構成がアクティブになるので、gcloud init
を使用してセットアップします。
> gcloud init
Welcome! This command will take you through the configuration of gcloud.
その後、一連の質問が表示されます。
[1] Re-initialize this configuration [testconfig] with new settings
を選択します。Your Google Cloud SDK is configured and ready to use!
gcloud config configurations activate [config name]
を使用してアカウントを切り替えます。