📚

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
}

仕組みの概要

  1. gcloud config configurations list の結果を peco にパイプ

    → 矢印キーで構成を選択できる

  2. 選んだ行の最初のカラム(構成名)を awk で抽出

  3. gcloud config configurations activate で構成を切り替え

  4. 現在アクティブになった構成を表示

これで CLI 上でも 複数プロジェクトを高速に切り替えられる環境が実現します。

まとめ

複数の GCP プロジェクトを扱う場合、Configuration を活用するだけで大幅に作業効率が向上します。

  • gcloud config configurations を利用して環境をプロファイル化
  • プロジェクトごとに構成を作成することで切り替えが容易に
  • peco とシェル関数を組み合わせれば直感的にプロジェクト切り替えが可能

CLI だけで快適な GCP 環境操作を実現したい場合、非常におすすめの方法です。

必要であれば、この gconf() の改善版(プロジェクト説明やリージョン表示対応、fzf 対応版など)も作成できます。

株式会社エクスプラザ

Discussion