ブログ一覧

EmDash の管理画面で記事を直すと Workers 無料プランで 503 になる

Cloudflare Workers の無料プランで動かしている Astro 製の CMS EmDash で、管理画面から公開済みの記事を直していたら、保存が 503 になり編集画面も開けなくなりました。記事は普段 CLI で入れていて、管理画面は公開した後の細かい直しにしか使っていなかったので、管理画面で直すときと CLI で入れるときで何が違うのかを Workers のログで確かめたところ、以下のことが分かりました。

  • EmDash の管理画面は、編集画面で入力が 2秒止まるたびに本文を保存のリクエストとして送る(自動保存)
  • この自動保存が 10秒ほどおきに走って 1回 61〜135ms の CPU を使い、4分続いたところで無料プランの CPU 上限に止められ、管理画面が約 2分 503 になった
  • 同じ日に CLI で別の記事を入れたときは、1回の CPU がほぼ同じでも止められていない

無料のまま使うなら、事実上、本文を管理画面の外で仕上げてまとめて入れることになります。

管理画面の自動保存は 1回ごとに 10ms を超え、4分で打ち切られた

EmDash 1.3.0 の自動保存は、入力が止まるたびに本文全体を送ります。間隔は管理画面のコードの定数で 2秒に決められていて、サイトの設定から変える項目はありません。

公開済みの記事を管理画面で直したときは、4分で自動保存が 22回走り、1回の CPU 時間は 61〜135ms と、どれも無料プランの上限 10ms を超えていました。続く 23回目の自動保存が止められてブラウザに 503 が返り、そこから約 2分は自動保存も編集画面を開くことも 503 になりました。その間に開いた公開ページはキャッシュから返ったのではなく、Worker が上限の 10ms を超える CPU を使って返していて、止められずに表示されました。Workers のログで各リクエストの結果を見ると、止められたものは exceededCpu になっていて、2件目からは 10ms に達した所で止められています。下の図の赤い棒が上限の線の高さで止まっているのはそのためです。

管理画面で記事を直した 10分は 10ms を超えるリクエストが続いて途中から打ち切られ、CLI で別の記事を入れた 10分(40分のうち書き込みが最も集中した所)は、1 回の CPU が同じくらいでも 1分ほどで書き込みが終わって打ち切られていない

Cloudflare の説明では、無料プランの CPU 時間の上限は 1 リクエスト 10ms で、たまに超えるだけなら見逃されますが、超え続けると上限で止められます。10ms を超えても毎回は止められないこの仕組みは、Cloudflare Workers 無料プランで 503 が出る原因は CPU 上限でログと一緒に書いています。

ただ、どれだけ見逃されるかは数字で示されていないので、管理画面で何回・何分までなら止められないかの線は、説明からも今回のログからも引けません。

何もせずに待つと約 2分で戻りましたが、そのあと何回か自動保存が走った所で編集画面を開き直すと、もう一度 503 になりました。編集画面を開くだけでも 1回 160ms の CPU を使います。

CLI で入れたときは 1回の CPU が同じくらいでも打ち切られなかった

同じ日に同じサイトへ別の記事を CLI で入れた 40分では、本文の更新が 9回あり、1回の CPU は 50〜230ms と管理画面の自動保存とほぼ同じ範囲でしたが、止められた書き込みはありませんでした。

上の図の下の段は、そのうち書き込みが最も集中した所です。約 1分で画像のアップロードと本文の更新と公開を合わせて 7回送り、どれも止められずに通りました。図のほかの棒は、その前後の読み取りです。

管理画面と CLI で違うのは、本文の更新の回数と続いた長さです。管理画面は 4分で 22回、CLI は 40分で 9回でした。保存と公開が毎回 10ms を超えることは、API で記事を続けて更新して測ったときにも見ています。

無料のままなら本文を外で仕上げ、管理画面で書くなら Workers Paid にする

自動保存の間隔はサイトの設定で変えられません。保存 1回の CPU も EmDash 本体の保存の処理が使う分で、サイトの設定には下げる項目がありません。管理画面で短い直しだけするつもりでも、何分までなら大丈夫という目安は先述のとおり引けません。

管理画面で記事を書いて直したいなら Workers Paid にする必要があり、1 アカウント月 5ドルからで、CPU 上限が既定 30秒になります(2026年10月時点)。

無料プランのまま使うなら、本文を手元で markdown に書き、画像のアップロード、本文の更新、公開を CLI でまとめて入れる手順を用意することになります。AI エージェントに記事を書かせるなら、書かせるところから、その手順で入れるところまでを、毎回同じ流れで回せるようにしておく必要があります。

この記事をシェア