タグ
#Cloudflare
Cloudflareに関する記事を公開しています。
EmDash で日本語のサイトを作るときに手を入れる 3か所
EmDash は日本語の記事をそのまま扱えますが、標準のサイト内検索は日本語の語を取りこぼし、語によっては半分以下しか当たりません。日本語の記事 173本で測った検索の数字と、スラッグと見出しの改行で公開前に決めることを書きました。
EmDash に移す日は DNS を移してから Email Sending に登録する
お客様のサイトを EmDash(Cloudflare Workers で動く CMS)に移すと、レンタルサーバーから送っていた問い合わせの通知と自動返信を、Cloudflare の Email Sending で組み直すことになります。登録は DNS を移した後にしかできないので、切り替えの日は DNS、登録、送信元、ログインの順で進めます。
Claude Code で使う cf docs search は Web 検索並み、docs MCP より正確で安い
Cloudflare の CLI「cf」にドキュメントを検索する cf docs search が入りました。Claude Code に Workers と D1 の 6問(最近変わった 4問と前からある 2問)を 2回ずつ答えさせ、Web 検索とドキュメントを検索する MCP サーバー(docs MCP)と比べると、Web 検索とは正誤も費用もほぼ同じで、docs MCP は 2回は正しく答えられず、費用は 3倍を超える額でした。
Cloudflare の Clairic で請求書を読み、確信度の低い文書だけ LLM に回す
Cloudflare の抽出モデル Clairic で日本語の請求書などを読み、数の項目の確信度が低い文書だけ LLM に回すと、30件の 7割の文書は 0.4秒台で返り、正解率は GLM-5.3 単独(100%)に近い 96.7% になりました。
Cloudflare AI Search で、質問の文でも当たるサイト内検索を付ける
Cloudflare の AI Search を使うと、文字が一致しなくても意味が近い記事を返すサイト内検索を、Workers の無料プランのまま付けられます。日本語の技術記事 172本で、CMS の全文検索では 0件だった質問の文でも、狙った記事が上位に来ました。索引の作り方、Worker からの呼び出し、無料で使える回数に収める仕組みまでの手順です。
EmDash の管理画面で記事を直すと Workers 無料プランで 503 になる
Workers の無料プランで EmDash 1.3.0 を動かし、管理画面で記事を直すと、自動保存が 1回 61〜135ms の CPU を使い、4分で打ち切られて管理画面が約 2分 503 になりました。CLI で入れたときは打ち切られず、無料のままなら本文は外で仕上げてまとめて入れることになります。
Void は import を見て Cloudflare のリソースを作り、作った物は消さない
KV を使う Astro のノートアプリでは、ID を貼る作業が Void で無くなりました。ただ、どのページからも呼ばれていないファイルでも、`void/storage` を import する行があるだけで R2 バケットが作られ、そのファイルを消してもバケットは残りました。Void は作るリソースをファイルの置き場所と import から決めます。作る前に一覧は出さず、作った物を自動では消しません。
小さな Workers アプリなら TanStack Start
一覧・詳細・フォームの同じアプリを TanStack Start 1.0 と Next.js(vinext と OpenNext)で作り、Cloudflare Workers に載せるならどれを選ぶかを比べました。新しく作るなら Start、Next.js のコードがあるならまず vinext で動かし、動かない物だけ OpenNext にします。
D1 と R2 を使う Workers サイトは Deno の celld で動くが、今は移すメリットが無い
D1・R2・Cron を使う EmDash の Workers サイトを、Cloudflare Workers 以外で動かす環境として Deno の celld 0.6.2 に載せました。設定 5か所とコード 3か所を直すと自前の 2台で動きましたが、Workers のキャッシュと TLS を失い、ビルドのたびの手直しとベータ版のツールを抱えることになります。今は移すメリットが無く、使い道は Cloudflare から出られる道があるかを手元で確かめておくことです。
Cloudflare Workers のログの枠は 12月から件数に直すと半分以下
12月から Workers Logs の枠は件数から容量(GB)に変わります。invocation logs(リクエストごとに自動で残るログ)を既定のまま残す Worker のログを測ると 1 リクエスト約 5KB で、件数に直すと Free は 1日約 10 万、Paid は月約 840 万リクエスト分と、今の枠の半分以下でした。
Cloudflare Pages に終了日は無く、Workers でも無料の範囲は同じ
Cloudflare Pages に終了日は発表されておらず、静的アセットの配信は Workers に移しても無料で無制限のままです。変わるのは、Cloudflare のネームサーバーを使っていないドメインをカスタムドメインにできないことと、ビルドの数え方です。移した後に Cron Trigger をサイトごとに置くと、無料プランではアカウント全体で 5本を超えた所で上限に当たります。
EmDash を本番で半年使った料金と WordPress 移行
EmDash は Cloudflare の無料プランで動くと言われます。9 サイトを半年本番で動かし、WordPress から 6 サイトを移した実例で、管理画面の保存の CPU 時間と移行で直した物を示します。9 サイトは無料のままで、有料にしても 1 アカウント月 5 ドルです。
Claude Code が約 0.01 ドルと説明した Cloudflare R2 に 10 ドル以上かかった
Claude Code が約 0.01 ドルと説明した Cloudflare R2 に 10 ドル以上かかりました。Standard の指定は管理画面にしかなく、指定せずに上げた素材がバケットの既定の低頻度アクセスに入り、SHA-256 の確認などの読み直しが読み出しとして数えられました。直したのはバケットの既定です。
小さなアプリで Cloudflare の監査スキルを手順どおり回すと /security-review の 30倍の費用
Cloudflare の security-audit-skill を約 170行の Workers のアプリで /security-review と同じモデルで比べました。主な脆弱性は両方が毎回挙げ、手順どおりに回すと費用は約 30倍、素のままなら約 4倍でした。
WordPress と EmDash の差は好みではなくプラグインの作りにある
WordPress から EmDash に乗り換えるメリットはあるのか。どちらも同じことができるなら好みの問題ではないのか。9 サイトを 1.1 まで運用した私の答えは、差は好みではなく、管理者なら誰でも本番のコードを触れる WordPress の作りにある、です。エコシステムの未成熟と、国内に始める場所が無いことまで含めて書きます。
Clef はリンク正誤判定なら Sonnet 並み、バグ探しには使えない
Cloudflare の判定モデル Clef を、自サイトの内部リンク関連度チェックとコードのバグ探しに使い、同じ問いを Claude Sonnet 5.5 にも投げて比べました。内部リンクでは Sonnet 5.5 と同じくらい当たり、費用は約 16分の1 でした。バグ探しでは、Clef が怪しいとした所の当たり方は無作為に選んだ場合とほとんど変わりませんでした。
D1 を編集できる AI エージェントは、隠した EmDash の鍵を自分で作れる
AI エージェントには鍵をプロキシで差し替えて渡し、実体を見せていません。ところが D1 を編集できるエージェントは、EmDash の API トークンを自分で発行できます。EmDash の API トークンは隠すのをやめてスコープを絞って使い捨てにし、隠すのはそれ以外の鍵にしました。
404 監視のボット除外ルールが、公開中のページを隠していた
404 の監視からボットを除外するルールは、間違えて実在のページを隠しても何の知らせも出ません。件数の減り方では気付けないので、サイトマップの全 URL をルールに通し、ボット扱いになるページが 0件かを確かめています。この確かめ方で、前からあったルールが公開中のページを隠していたのが見つかりました。
EmDash は Workers の無料プランだと保存のたびに CPU 上限を超えた
Cloudflare Workers の無料プランで EmDash を動かすと、管理画面の保存と公開は成功した回も含めて毎回 CPU 上限の 10ms を超え、ときどき打ち切られました。既存の顧客は無料のまま移して問題が出たら払い、新規の顧客は最初から有料プランで見積もります。
EmDash の Cron は Free プランだと5本まで
EmDash は全サイトに Cron Trigger がある前提で作られています。9サイトに足すと6サイトでデプロイが落ちました。Workers Free の Cron はアカウント全体で5本までなので、置くサイトを2つに絞り1日1回にしました。