📘

gcloudでプロジェクトを切り替える

2023/01/17に公開

はじめに

GCP(Google Cloud Platform) で様々なGCPのプロジェクトの開発に携わっていると、gcloud コマンドで使用するプロジェクトのフォーカスを切り替える必要が出てくる。今回は GCP における、gcloud コマンドで使用するGCPのプロジェクトを configuration を使って切り替える方法を備忘録として記載する。

gcloud config コマンドグループについて

gcloud config コマンドグループでは、Google Cloud CLI で使用されるアカウント情報などのプロパティの設定、表示、設定の解除を行うことが出来ます。また、gcloud configurations createコマンドを使用することでgcloud上で切り替えたいGCPのプロジェクトを登録することができる。
gcloud configurations createを使用して切り替えをするGCPのプロジェクトを登録する前に、gcloudで紐づいているプロジェクトとアカウント一覧を確認します。確認する場合はgcloud config configurations listを実行することで確認することが出来ます。

$ gcloud config configurations list
NAME IS_ACTIVE ACCOUNT PROJECT COMPUTE_DEFAULT_ZONE COMPUTE_DEFAULT_REGION
default True your-email-address@gmail.com [your-project-ID]

gcloudを端末にインストールをした際に、gcloud initを実行しこたことにより、既にデフォルト設定が登録されていることが確認できます。

gcloudに新しくプロジェクトを紐付ける

gcloud config configurations create [setting-name1]を実行することで、今回gcloudに新しく紐付けをしたいプロジェクトやアカウントに関する構成を作成します。

$ gcloud config configurations create [setting-name1]
Created [setting-name1].
Activated [setting-name1].

新しく紐付けをしたいプロジェクト・アカウントの設定が記載された構成の設定名「setting-name1」で作成出来たみたいなので、もう一度gcloud config configurations listで確認します。

$ gcloud config configurations list
NAME                        IS_ACTIVE  ACCOUNT                      PROJECT              COMPUTE_DEFAULT_ZONE  COMPUTE_DEFAULT_REGION
default                     False      your-email-address@gmail.com [your-project-ID]
setting-name1               True

新しく作ったプロジェクト・アカウントに関する構成の設定が反映されていて「IS_ACTIVE」がTrue、つまり有効になっていることが確認できます。ただ、アカウント情報やプロジェクトの設定内容に記載がないのでアカウント・プロジェクトに関する設定を追加していきます。
まずは、アカウント・プロジェクトに関する設定内容を追加します。コマンドgcloud config set accountでアカウント情報を登録することが出来ます。

$ gcloud config set account your-email-address@gmail.com
Updated property [core/account].

コマンドgcloud config set projectでプロジェクト情報を登録します。

$ gcloud config set project [new-project-ID]
Updated property [core/project].

コマンドgcloud config set compute/zoneでzoneの設定をします。

$ gcloud config set compute/zone [zone-name]
Updated property [compute/zone].

最後に、コマンドgcloud config set compute/regionでリージョンの設定をします。

$ gcloud config set compute/region [region-name]
Updated property [compute/region].

gcloudに新しくプロジェクトが紐づいているか確認

gcloudに紐付けしたいアカウント・プロジェクトの大体の設定が登録できたので正しく登録出来たか確認します。

$ gcloud config configurations list
NAME                        IS_ACTIVE  ACCOUNT                       PROJECT              COMPUTE_DEFAULT_ZONE  COMPUTE_DEFAULT_REGION
default                     False      your-email-address@gmail.com   your-project-ID
setting-name1               True       your-email-address@gmail.com  new-project-ID       zone-name             region-name

最後に、紐付けしたアカウントとプロジェクトに認証を通すためにgcloud auth loginを実行して認証を行います。これで、gcloud上で新しく紐付けしたアカウント・プロジェクトで作業することが出来ます。
プロジェクトとアカウントを切り替えしたい場合はgcloud config configurations activate [setting-name]で切り替えることが出来ます。
今は「setting-name1」に定義したアカウントとプロジェクトとgcloud上で有効になっているので[default]の設定内容に切り替えしてみます。

$ gcloud config configurations activate default

実際に切り替わったかgcloud config configurations listで確認します。

$ gcloud config configurations list
NAME                        IS_ACTIVE  ACCOUNT                       PROJECT              COMPUTE_DEFAULT_ZONE  COMPUTE_DEFAULT_REGION
default                     True       your-email-address@gmail.com   your-project-ID
setting-name1               False      your-email-address@gmail.com  new-project-ID       zone-name             region-name

「default」が有効になっていることが確認できました。これで、gcloud上でアカウントとプロジェクト切り替えが簡単に行うことが出来ます。

Discussion