Cloudflareでトリガーを引いて任意のタイミングでデプロイできるようにする

2024-12-12

なぜやるか

弊サイトは下記のプロセスで動いています。

  • Notion でコンテンツを管理する
  • Cloudflare でデプロイするとサイトが構築される
  • 公開される

この Cloudflare のデプロイを毎回手動で再試行しないと
ページが更新されないようになっているのでとても不便だなあと思ってました。

で、Cloudflare のことだから何かしらのトリガーでデプロイできるだろ、
と思って調べたらありました。

コンテンツの更新時にCloudflare Pagesでデプロイを行う

のでやります。

デプロイトリガー

どうやら、デプロイトリガーというものを叩くとデプロイが行われるようなので、
これをコンテンツが更新されたら自動的にトリガーするという算段でいきます。

本当は、Notion でボタンを押すとトリガーされる、ということをしたかったのですが、
2024-12-13 現在ボタンで Webhook をトリガーするのに課金が必要だったのでやめました。

GAS で定期実行する

色々考えて、とりあえず GAS で書いちゃおうということで GAS でちゃちゃっと書きます。


function cloudflare() {
  const cloudflare_url = "https://api.cloudflare.com/…"
  postToUrl(cloudflare_url)

}

function postToUrl(url) {
  var options = {
    'method': 'post',
    'muteHttpExceptions': true
  };

  try {
    var response = UrlFetchApp.fetch(url, options);
    Logger.log('Response Code: ' + response.getResponseCode());
    Logger.log('Response Body: ' + response.getContentText());
  } catch (e) {
    Logger.log('Error: ' + e.toString());
  }
}

cloudflare_url に URL を渡してあげると動きます。

あとはこれをトリガー設定して完成です。