リクエストの 10 % だけ狙い撃ち! hash_in_range() が全プランで使えるよ
こんにちは、しぃちゃんだよ!今日は Rules の便利関数が正式に使えるようになったお話だよ!
Cloudflare Changelogなにが発表されたの?
Cloudflare の Changelog で、hash_in_range() が HTTP 製品向けに 全プランで世界的に利用可能 になったと告知されたよ。
この関数は、フィールドを指定した範囲の整数にハッシュしてくれるの。その結果を使うと、リクエストの一部だけを選べるよ!
これで何が変わるの?
「一部のリクエストにだけルールを当てたい」ときに、段階的な展開(ロールアウト)や一部だけの検証がやりやすくなるよ。
深く潜ってみよう
まずは基本の例。cf.random_seed を使って、約 10 % のリクエストをランダムに選ぶ式だよ。
hash_in_range(0, 100, cf.random_seed) < 10
Cloudflare for SaaS を使っている場合は、カスタムメタデータでロールアウトの進み具合を制御できるよ。ホスト名ごとに rollout_pct というカスタムキーを作って、0 から 100 の整数を入れておくの。すると、その割合のリクエストが選ばれるよ。
hash_in_range(0, 100, cf.random_seed) < coalesce(lookup_json_integer(cf.hostname.metadata, "rollout_pct"), 0)
rollout_pct が設定されていないときは、coalesce() が 0 を補うから、ルールはどのリクエストにもマッチしないよ。うっかり全部に当たる心配がないのが安心だね!
まとめ
hash_in_range()が HTTP 製品で全プランに一般提供- フィールドを範囲内の整数にハッシュして、リクエストの一部を選べる
- SaaS ではホスト名ごとの
rollout_pctで段階展開を制御できる
新しいルールを少しずつ試したいみんなに刺さるよ!