Google Cloudで複数プロジェクト環境を便利にCLIだけで扱う方法

Google Cloud で複数プロジェクトを CLI だけで便利に扱う方法
Google Cloudで複数プロジェクトを横断して作業していると、プロジェクト切り替えが煩雑になりがちです。特に、個人検証環境・業務環境・ステージング環境などを CLI (gcloud) で行き来する場合、毎回 gcloud config set project ... を手で実行するのは非効率です。
そこで本記事では、gcloud config configurations を活用したプロジェクト管理と、peco を使って直感的に構成を切り替える方法を紹介します。
gcloud の Configuration による複数プロジェクト管理
gcloud の “Configuration(構成)” 機能を使うと、アカウント・プロジェクト ID・デフォルトリージョンといった設定を プロファイルとして切り替え可能になります。
現在の構成一覧は以下のコマンドで確認できます。
❯ gcloud config configurations list
NAME IS_ACTIVE ACCOUNT PROJECT COMPUTE_DEFAULT_ZONE COMPUTE_DEFAULT_REGION
default True user@example.com sample-base-project asia-northeast1-a asia-northeast1
構成名だけを確認したい場合は --format="value(name)" を使います。
❯ gcloud config configurations list --format="value(name)"
default
新しい Configuration を作成する
業務向けのプロジェクトコンテキストを作成する例を示します。
❯ gcloud config configurations create work-ops
Created [work-ops].
Activated [work-ops].
続けて、対象のプロジェクト ID を設定します。
❯ gcloud config set project sample-work-project-123456
Updated property [core/project].
この時点で、work-ops という構成が作成され、アカウントやプロジェクトをまとめて切り替えられるようになります。
対話的に構成を切り替える gconf() シェル関数
構成が増えてくると、毎回構成名を覚えて activate するのも面倒です。
そこで便利なのが、peco を使って直感的に選択できる gconf() 関数です。
以下の関数を .zshrc や .bashrc に追加して利用できます。
function gconf() {
projData=$(gcloud config configurations list | peco)
if echo "${projData}" | grep -E "^[a-zA-Z].*" > /dev/null ; then
config=$(echo ${projData} | awk '{print $1}')
gcloud config configurations activate ${config}
echo "=== The current configuration is as follows ==="
gcloud config configurations list | grep "${config}"
fi
}
仕組みの概要
-
gcloud config configurations listの結果をpecoにパイプ→ 矢印キーで構成を選択できる
-
選んだ行の最初のカラム(構成名)を
awkで抽出 -
gcloud config configurations activateで構成を切り替え -
現在アクティブになった構成を表示
これで CLI 上でも 複数プロジェクトを高速に切り替えられる環境が実現します。
まとめ
複数の GCP プロジェクトを扱う場合、Configuration を活用するだけで大幅に作業効率が向上します。
-
gcloud config configurationsを利用して環境をプロファイル化 - プロジェクトごとに構成を作成することで切り替えが容易に
-
pecoとシェル関数を組み合わせれば直感的にプロジェクト切り替えが可能
CLI だけで快適な GCP 環境操作を実現したい場合、非常におすすめの方法です。
必要であれば、この gconf() の改善版(プロジェクト説明やリージョン表示対応、fzf 対応版など)も作成できます。
「プロダクトの力で、豊かな暮らしをつくる」をミッションに、法人向けに生成AIのPoC、コンサルティング〜開発を支援する事業を展開しております。 エンジニア募集しています。カジュアル面談応募はこちらから: herp.careers/careers/companies/explaza
Discussion