GCS の画像を Cloudflare Worker で中継してエッジにキャッシュする(バケット名を変えずに独自ドメインで配る)
GCS の公開バケットにある画像を、Cloudflare Worker で中継して独自ドメインから配るようにしました。CNAME が使えなかった理由、40行ほどの Worker の中身、GCS のエラー本文を出さない処理、Vary: Origin を付け忘れて「画像を保存」が失敗した件をまとめます。
Topic
Cloudflare(Pages Functions・Workers・DNS・キャッシュ)を個人開発で使った記録です。動的 OGP 画像の生成、GCS 画像のエッジ配信、通信料の削減などを扱っています。
4件(新しい順)
GCS の公開バケットにある画像を、Cloudflare Worker で中継して独自ドメインから配るようにしました。CNAME が使えなかった理由、40行ほどの Worker の中身、GCS のエラー本文を出さない処理、Vary: Origin を付け忘れて「画像を保存」が失敗した件をまとめます。
Cloudflare の裏で WordPress を動かす GCP VM の外向き通信が月約70GB。通信料は Networking ではなく Compute Engine 側に計上されていました。内訳を調べたら4割が圧縮されていない404応答だったので、PHP で gzip 化し、Standard ティアに切り替えた話です。
静的サイトのまま、共有リンクごとに中身入りの OGP 画像を出す仕組みを Cloudflare Pages Functions で作りました。クローラー向けの HTML とブラウザの転送、workers-og での画像生成、エッジキャッシュ、Server-Timing で測った生成時間と、render が 0ms になる理由までまとめます。
WordPress サイトの favicon が Google 検索結果に反映されなかったときの調査と対応。リダイレクトの解消、.ico の配置、Cloudflare のキャッシュ削除まで。