アルパカログ

Google Cloud SDK 環境変数で有効化するプロジェクトを切り替える(gcloud)

2020年11月25日
🔖クラウド・インフラ

Google Cloud Platform(GCP)はシステム開発の現場でよく見られるようになりました。

開発者にとってGCPとセットで馴染み深いのがGoogle Cloud SDK (gcloudコマンド)です。

複数のGCPプロジェクトに関わる場合、gcloudコマンドはプロジェクトごとに設定を用意し、アクティベートによって有効にしたい設定を切り替える必要があります。

しかし、複数のプロジェクトに関わる開発者にとって、設定を都度手動で有効化しなければならないのは手間ですし、別のプロジェクトの設定でデータベースをマイグレーションしてしまうなど、ミスの原因にもなりえます*1。

そこでこのエントリでは、環境変数によって有効化する設定(プロジェクト)を自動で切り替える方法を紹介します。

環境変数に有効化したい設定をセットする

最初にプロジェクトごとの設定(公式ドキュメントでは構成)を作成します。

下記コマンドで任意の名前で設定を作成します。

$ gcloud config configurations create [NAME]
Created [[NAME]].
Activated [[NAME]].

作成すると自動で設定が有効になります。

$ gcloud config set project [PROJECT]
Updated property [core/project].
$ gcloud config set account [ACCOUNT]
Updated property [core/account].

必要に応じてzoneregionも設定します。

$ gcloud config configurations list
NAME         IS_ACTIVE     ACCOUNT            PROJECT               DEFAULT_ZONE  DEFAULT_REGION
default      False         user@gmail.com     example-project-1
project-1    False         user@gmail.com     example-project-2
project-2    True          user@gmail.com     example-project-3

.envrcなどに有効化したい設定名を記述しておきます。設定名はCLOUDSDK_ACTIVE_CONFIG_NAMEに設定します。

export CLOUDSDK_ACTIVE_CONFIG_NAME=project-1

.envrcが読み込まれたタイミングで設定が有効になります。

以上です。

このエントリでは、環境変数によって有効化する設定(プロジェクト)を自動で切り替える方法を紹介しました。

タグ