提携先のクローラーが HTML を取れるよう、エッジで返す構成にした
2025Cloudflare · Pages · Functions · D1
アフィリエイトを受けた企業側から、掲載コンテンツを取りに来るクローラーが流れます。クライアントだけで組み立てるページだと、そのクローラーが中身を取れない懸念がありました。公開ページはサーバー側で HTML を組み立てて返し、読み込みも速くする必要がありました。同時に運用コストも抑えることも視野にありました。
最初に検討したのは Vercel に Postgres、KV、NextAuth を足す案でした。費用とサービスを比較し、ホスティングから D1、管理者の入り口まで Cloudflare に寄せるほうが安く上がると友人側へ説明し、その前提で進めることになりました。Next.js の静的エクスポートを Cloudflare Pages に載せ、ブログはビルド時に取得して HTML にしています。
動かす処理だけ Functions に残しています。ただし CPU 時間に上限があるので、スプレッドシートで行うようなよ各レコードで集約計算をするような重い計算は載せていません。現在、事業で最も重要かつ重い計算処理である、実測値を元に結果予想を行う処理はスプレッドシートにて行っています。この処理の実装は既存の実装内容からの変更が必要となり、影響範囲と計算だけ別サービスへ出す案を見つつ保留しています。