Cloudflare PagesからWorkersへ移行した

Cloudflare Workers - Static Assets

このブログはもともとCloudflare Pagesでホスティングしていましたが、最近はCloudflare Workersが推されているようだったので、ブログを新しくしたついでに移行しました。

WorkersはCloudflareのエッジサーバー上でJavaScriptなどのプログラムを実行できるサーバーレス環境ですが、2024年ごろから静的なアセットのホスティングもサポートするようになってました。

移行する

移行手順は以下に詳しく書かれているのでこれに従っておけば大丈夫です。

Migrate from Pages to Workers · Cloudflare Workers docs

また移行プロンプトも公開されているので、AIに丸投げしてみてもいいのかもしれません。

https://developers.cloudflare.com/workers/prompts/pages-to-workers.txt

ポイント

せっかくなので個人的なポイントをいくつかまとめておきます。以下からの引用は上記の移行手順からです。

お金

Like Pages, requests for static assets on Workers are free, and Pages Functions invocations are charged at the same rate as Workers, so you can expect a similar cost structure.

なのでCloudflare Pagesと同じように基本無料で使えます。ありがたいことです。

カスタムドメイン

Unlike Pages, Workers does not support any domain whose nameservers are not managed by Cloudflare.

ということでドメインのネームサーバーがCloudflareである必要があります。私はもともとCloudflareで管理していたので特に困りませんでしたが、引っかかる人も多そうです。

_headers_redirectsもそのまま

Cloudflare Pagesでは、_headers_redirectsといったファイルを使ってHTTPヘッダーの設定やリダイレクトの設定ができましたが、Workersでもそのまま使えます。

特に_redirectsは、そこそこリダイレクトしているページが結構あって、大きなファイルになっていて作り直しだったら嫌だな~と思っていましたが、そのまま移行できてよかったです。最初Redirect · Cloudflare Workers docsを見ていて_redirects使えないのかと思ってしまいましたが、Redirects · Cloudflare Workers docsにちゃんと詳細書いてありました。タイトルがややこしい。

Pagesからの移行の場合は"Static Assets"のドキュメントをいま見ているのか確認するのがよさそうです。

余談ですが、

If your Pages project uses a popular framework, most frameworks already have adapters available for Cloudflare Workers.

としてFramework guides · Cloudflare Workers docsが紹介されています。このサイトはBlazor WebAssemblyで作られているんですが、現時点ではここにBlazorの名前はありません。がんばれBlazor。

An unhandled error has occurred. Reload 🗙