Cloudflare WorkersとPagesの違い
Workersはエッジコンピューティングのサービスで、Pagesは静的サイトのホスティングを行うサービスです。
Hugoのデプロイ先としてはPagesが使われてきましたが…
Pagesから移行しよう?
少し前まで、なんですけどねダッシュボードにPagesからWorkersに移行しませんか?っていう表示が出ていました。
正直Pagesの手軽さはとてつもない魅力です。軽いサイトをぺっと公開できますからね。
それを捨ててWorkersに??
とても簡単である
移行というより、このブログは元々GitHub Pagesでホスティングする予定でしたが、デプロイがうまく行かなかったため、Cloudflareで公開しています。
Workersで公開するのはとても簡単ですので、やり方を紹介します。
wrangler.jsoncの作成
プロジェクトのルートにwrangler.jsoncを作成します。
んで内容は以下のように記述します。
| |
nameとcompatibility_date、routesのpatternは適宜置き換えるように。
なおカスタムドメインはCloudflareで管理されているものに限ります。
テストでデプロイ
デプロイにはwranglerというCloudflare公式のCLIツールを使用します。
ログイン
| |
実行するとブラウザが立ち上がります。立ち上がらない場合は表示されるURLにアクセスし、ログインしてください。

画像のようになればOK!
デプロイ
| |
まずはhugoをbuildして,
| |
を実行するとプロジェクトの作成からデプロイまでやってくれる。
カスタムドメインも設定済みなので、アクセスすれば見れるようになります!
CIの設定
このブログはGithu Actionsを使用してビルド→デプロイまでされている。
以下がワークフローファイル。
| |
まぁ何の変哲もない。
wranglerのバージョンを指定しないと古いバージョンを使用するので、できれば指定しておこう。
あとはbunを使うと実行時間が短くなるので、使ってるくらい。
apiTokenとaccountIdはそれぞれ
APIトークンの取得

ダッシュボードのサイドバーのアカウントの管理 → アカウントAPIトークン を開き

トークンを作成する をクリック。

APIトークンテンプレートから「Cloudflare Workersを編集する」のテンプレートを使用する。

ゾーンリソースでドメインを指定して、

トークンを作成します。

表示されたトークンをGithub Actionsのsecretsに追加するだけです。
アカウントIDの取得

アカウントホームのアカウント名の横の三点リーダーを開いて一番上にアカウントIDをコピーっていうボタンがある。
それをGithub Actionsのsecretsに追加するだけ。
実行時間
私のブログはまだ始めて間もないので、規模が小さい。それ故実行時間は概ね20~30秒で収まっている。
もう少し規模が大きくなれば伸びるだろうけど、それでも大した時間にはならないのでは?
終わり
以上です。こういう使い方もCloudflareが提示しているやり方です。
この使い方ではWorkersのリソースを消費しません。リクエストの無料枠を消費しないってことです。嬉しい。
表示速度も体感できるほどの差は無いので、どちらか好きな方を選べばいいと思います。