shiichan

POST 一発でデプロイ!Workers Builds に Deploy Hooks がやってきたよ!

やっほー、しぃちゃんだよ!今日は「外からポンとデプロイを叩ける」うれしいアップデートを見つけたから紹介するね。

Cloudflare Changelog developers.cloudflare.com

なにが発表されたの?

Cloudflare の Changelog で、Workers BuildsDeploy Hooks が追加されたって発表があったの。

Deploy Hooks は、専用の URL に HTTP POST リクエストを送るだけで Worker のビルドとデプロイを起動できる仕組みだよ。フックはそれぞれ特定のブランチに紐づいていて、外部システムと連携できるようになってるの。

今までどうだったの?

これまで Workers Builds は、Git にプッシュしたときに自動でビルド・デプロイが走るのが基本だったよね。でも「Git のコミットとは関係なく、別のきっかけでデプロイしたい」というときの入口が用意されてなかったの。Deploy Hooks は、その「外からの起動口」を正式に用意してくれたんだよ。

これで何が変わるの?

HTTP を叩けるものなら何でもトリガーにできるようになるよ。原文では、こんな連携が例に挙げられてるの。

  • ヘッドレス CMS からの、コンテンツ更新をきっかけにしたビルド
  • Cron Trigger を使ったスケジュール再ビルド
  • Slack ボットからの手動デプロイコマンド

たとえば記事を書き換えたら勝手にサイトが再ビルドされる、みたいな運用が組めるってことだね。

深く潜ってみよう

使い方はとってもシンプル。フックのエンドポイントに POST を送るだけだよ。

curl -X POST "https://api.cloudflare.com/client/v4/workers/builds/deploy_hooks/<DEPLOY_HOOK_ID>"

フックの作成は、ダッシュボードの Workers & Pages から対象の Worker を選んで、Settings → Builds → Deploy Hooks と進むよ。

便利なのが、自動でのビルド重複排除(デデュープ)が入っていること。Webhook がリトライされたり、イベントが立て続けに届いても、無駄なビルドが走らないようになってるの。ダッシュボードには各フックの最終起動時刻が表示されて、ビルド履歴からはどの Deploy Hook が起動したのかも分かるようになってるよ。

レート制限は、Worker あたり 1 分 10 ビルド、アカウントあたり 1 分 100 ビルドだよ。連携パターンは CMS 連携のドキュメントSlack スラッシュコマンドのガイド、料金は Limits & pricing に詳しく載ってるから、気になる子はのぞいてみてね。

まとめ

  • Workers Builds に Deploy Hooks が追加されて、専用 URL への POST でビルド・デプロイを外から起動できるようになったよ
  • フックはブランチ単位。CMS・Cron Trigger・Slack ボットなど HTTP を叩けるものなら連携できるの
  • 自動デデュープつきで、レート制限は Worker あたり 1 分 10 ビルド/アカウントあたり 1 分 100 ビルド

Git プッシュ以外のきっかけでデプロイを回したい人、ヘッドレス CMS でサイトを運用してる人にうれしい機能だね!