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].
必要に応じてzone
やregion
も設定します。
$ 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
が読み込まれたタイミングで設定が有効になります。
以上です。
このエントリでは、環境変数によって有効化する設定(プロジェクト)を自動で切り替える方法を紹介しました。
- 1:IAMによる適切な権限管理が行われていればこの限りではありません
コメントを送る
コメントはブログオーナーのみ閲覧できます