Wrangler CLI の「wrangler auth」コマンドで Cloudflare の複数アカウントを切り替える

2021年ぐらいから Cloudflare Workers を徐々に使い始め、最近もよくウェブアプリを作ってはデプロイ先として利用することが多い。

その中で、自分は都合により Cloudflare のアカウントを複数利用しているのだが、Wrangler CLI の $ wrangler login は ~/.config/.wrangler/ 配下に保持されるログイン情報が1アカウント分しか保持できなくて、アカウント切り替え時に毎度 $ wrangler login するのが面倒臭かった。

~/.config/.wrangler/config/ 配下に生成される TOML ファイル名を変えて、Wrangler のコマンドを叩く時に --profile オプションを付けることでアカウントを使い分ける、ということは出来るは出来るのだが、いちいちオプションを書かないといけないのが面倒だった。

そう思っていたらいつの間にか $ wrangler auth というコマンドが増えていて、コレにより「このディレクトリ配下はこのプロファイルで作業する」という設定を保持できるようになった。実体は ~/.config/.wrangler/profiles/directory-bindings.json に書かれており、プロファイル名とディレクトリ名の対応表という簡単な仕組みである。

# プロファイルを新規作成する・もしくは既存のプロファイルの認証情報が切れた時に再ログインする
$ wrangler auth create 【プロファイル名】
  # → ブラウザでログイン認証を済ませる

# そのディレクトリで対象プロファイルを使う時は、以下を実行する
$ wrangler auth activate 【プロファイル名】
  # → 以降そのディレクトリ配下での Wrangler CLI 操作ではプロファイル名の指定なしで良くなる

# プロファイル一覧と紐付けたディレクトリパスが確認できる
$ wrangler auth list

$ wrangler auth create でアカウントログイン、$ wrangler auth activate でカレントディレクトリとプロファイル (アカウント) を紐付け、というワケだ。以降は普通に $ wrangler deploy とかを叩けば、--profile オプションでの切り替えは必要ない。

コレ地味に便利で助かる。