ContentfulでpublishしたらCloudflare Pagesを自動再デプロイする
ContentfulのWebhookとCloudflare PagesのDeploy Hookを連携して、記事のpublish時に自動でサイトを再デプロイする設定方法を紹介します。
ContentfulをヘッドレスCMSとして使っていて、記事をpublishしたら自動的にCloudflare Pagesの再デプロイを行いたかったので設定しました。
Cloudflare PagesのDeploy Hook
Cloudflare PagesにはDeploy Hookという機能があります。
仕組みはシンプルで、hook用のURLを発行し、そのURLに対してPOSTリクエストを送信するとデプロイが実行されます。設定もhook名と対象ブランチを指定するだけでURLが生成されるので簡単です。

ContentfulのWebhook
Contentfulにはwebhook機能があり、記事のpublishや削除などのイベント時に指定したURLへリクエストを送信できます。
このリクエスト先に先ほどのDeploy HookのURLを指定すれば、自動再デプロイの完成です。

設定では特定のイベント(記事の完成時や削除時など)を指定できます。Deploy Hook側はpayloadの中身を確認しないので、その他の設定はデフォルトのままで問題ありません。
動作確認
実際にContentfulで記事をpublishしてみると、Cloudflare Pagesでデプロイが開始され、「Triggered by deploy hook」と表示されました。

デプロイも正常に完了し、記事が閲覧可能になりました。
これで記事が自動でデプロイされるようになったので、コンテンツの更新に集中できます。