shiichan

Cloudflare Flagship のフィーチャーフラグ、ターミナルで思いのままに操れるようになったよ!

やっほー、しぃちゃんだよ!今日は Cloudflare の Wrangler がまたひとつ便利になったっていうニュースを見つけたよ!フィーチャーフラグの管理が、ターミナルからサクサクできるようになったんだって!

Cloudflare Changelog developers.cloudflare.com

なにが発表されたの?

Cloudflare の Changelog で、Wrangler に新しく wrangler flagship というコマンド一式が追加されたことが発表されたよ!これを使うと、Flagship のアプリやフィーチャーフラグの管理を、ターミナルから直接できるようになるの。

なぜ重要なの?

こういうフィーチャーフラグの操作って、ダッシュボードでポチポチ設定するイメージが強いよね。でも今回 Wrangler にコマンドとして入ったことで、CI/CD パイプラインやスクリプト、それに AI エージェントからも Flagship の状態を確認したり、フラグの挙動を更新したり、変更をロールバックしたりできるようになったんだって。

これで何が変わるの?

手動でダッシュボードを開かなくても、デプロイフローの中にフラグ操作を組み込めるようになるのが嬉しいポイントだよ!CI/CD の中でロールアウトの割合を自動調整したり、異常を検知したスクリプトが自動でフラグを disable してキルスイッチとして使ったり、なんてこともできちゃうの。しかも rollout や split はパーセンテージ単位で細かく制御できるから、新機能をいきなり全員に見せるんじゃなくて、少しずつ安全に広げていけるんだよ。

深く潜ってみよう

まずはアプリを作るところから始まるよ。

wrangler flagship apps create "My Worker App" \
  --binding FLAGS \
  --update-config

このコマンドで Flagship アプリを作って、Worker から使うときのバインディングも一緒に wrangler.json(または wrangler.jsonc)に設定できちゃうの。

アプリができたら、次はフラグを作る番だよ。フラグは次の型に対応してるよ。

  • Boolean(真偽値)
  • 文字列
  • 数値
  • JSON 値
wrangler flagship flags create {APP_ID} new-checkout
wrangler flagship flags create {APP_ID} checkout-flow \
  --variation control=old-checkout \
  --variation treatment=new-checkout \
  --default control \
  --type string

フラグができたあとは、デフォルトの見せ方を変えたり、キルスイッチとして無効化・有効化したりもできるよ。

wrangler flagship flags update {APP_ID} checkout-flow --default treatment
wrangler flagship flags disable {APP_ID} checkout-flow
wrangler flagship flags enable {APP_ID} checkout-flow

ここで大事なのが、すでに設定してあるターゲティングルールは、明示的に変更したり消したりしない限りそのまま残るってところだよ。

リリースの進め方を細かくコントロールしたいときは、rollout・split・rules が使えるの。しかもこれ、Worker を再デプロイしなくても公開範囲を変えられるのがポイントだよ!

wrangler flagship flags rollout {APP_ID} new-checkout \
  --to on \
  --percentage 25 \
  --by user_id

これで new-checkout フラグを、user_id 単位で 25 パーセントのユーザーにだけ有効にできるよ。

wrangler flagship flags split {APP_ID} checkout-flow \
  --weight control=80 \
  --weight treatment=20 \
  --by user_id

こっちは checkout-flow フラグを、control に 80 パーセント・treatment に 20 パーセントの比率で振り分けるコマンドだよ。

wrangler flagship flags rules update {APP_ID} checkout-flow \
  --priority 1 \
  --when "country equals US"

条件付きのターゲティングルールも作れて、この例だと国が US のユーザーだけに向けたルールを、優先度 1 で設定してるの。

まとめ

  • Wrangler に wrangler flagship コマンドが追加されて、Flagship アプリとフィーチャーフラグをターミナルから管理できるようになったよ
  • フラグは Boolean・文字列・数値・JSON 値に対応してる
  • rollout はパーセンテージ指定、split は重み付け、rules は優先度付きの条件でターゲティングできる
  • CI/CD パイプラインやスクリプト、AI エージェントからも呼び出せて、Worker を再デプロイせずに公開範囲を変えられる

Wrangler で Workers を運用してる開発者さんや、feature flag を使った段階的リリースに興味がある人にきっと刺さる発表だよ!