别让小项目跑出大账单:Cloudflare 的四层费用防护
David Z(@davezfr)在 X 长文中面向 Vibe Coder,整理预算提醒、付费路径停止条件、自动暂停,以及由 personal agent 核实并暂停的四层防护。
- 适用产品
- WorkersKVD1Durable ObjectsR2Queues
- 来源
- 作者经验𝕏
- 作者
- David Z(@davezfr)
要点
- 作者认为费用不只取决于访问量,还取决于每次触发带来多少计算和读写、后台会重复执行多久;文中把公开接口、后台重试和重复回调列为三条费用放大路径。
- 第一层是到 Billing → Billable Usage → Budget alerts 核对提醒。作者提醒:预算提醒只发通知,按整个账户而非单个项目计算,触线第二天才发邮件,所以最后一档要离预算上限留出余量。
- 第二层是在真正花钱的操作前设停止条件:页面隐藏时停止轮询、共享结果做短缓存;workers.dev、版本地址和预览地址都算入口;限制单次数量、并发和每日配额,并在服务端原子预留;给重试、总期限和 alarm 自我续订设上限;用稳定事件 ID 去重回调,R2 输入与输出分开存放。
- 第三层是独立运行的监控:读取指标、暂停具体操作并确认暂停生效。作者写到定时任务、队列消费者和 alarm 要分别停;只在配置里注释掉 Cron 不会删除线上触发器;自动暂停也不等于账单封顶。
- 第四层由 personal agent 通过只读查询工具和只能暂停指定项目的工具核实告警、执行暂停;Token 放在工具背后,删除数据和恢复服务留给本人。作者引用 Cloudflare 10 月 2 日的公告称硬性支出上限计划在 2026 年第四季度早期开放,并写到早期计划还不是账户里已生效的保护。
原始来源
其他推荐阅读
Workers
RetainDB:81 个用户,队列循环报告约 $36k 账单。
Reddit 用户 alameenswe 在 Workers、KV、Durable Objects 与 Queues 上构建 RetainDB,报告 81 个用户一个月产生约 $36k 的 Cloudflare 账单,正文写作 $35,000。他将其归因于队列消费者反复重新排队异步写入、每次记忆写入 12 次未批处理的 Durable Object 写入,以及鉴权回退中的 kv.list() 扫描。
官方说明Durable Objects
Durable Objects WebSocket 休眠
Cloudflare 官方示例说明 Durable Objects 如何让闲置 WebSocket 连接休眠。