Workers Builds 的免费替代方案:CircleCI、GitHub Actions、Oracle Cloud,以及避坑方法
一个月才过去10天,后台就宣布:“本月额度已耗尽。”
等一下,日历上还有20天呢!难道服务器也要请年假?免费套餐的保安,提前20天拉下了卷帘门。
好消息是:构建额度耗尽,不等于已经上线的网站自动下线。 构建代码、响应访问、发送现成的网页文件,是不同的工作。部分任务还可以搬到其他服务商的免费计算环境。
以下数字根据2026年10月10日的官方资料整理。免费规则可能调整,实际使用前要再次核对。
1. 先确定到底是哪一种额度没了
Cloudflare 的多个产品各有不同限制,不能把它们当成同一块电池。
- Workers Builds:拉取、检查和构建代码的时间。免费额度为每月3,000分钟,同时运行1个构建,每次最长20分钟。[1]
- Cloudflare Pages 构建:网站构建次数,免费每月500次,同时1次。[2]
- Workers / Pages Functions 请求:动态代码执行次数。免费套餐两者共用每天100,000次请求的额度。[3]
- 静态文件分发:如果请求不调用Functions,直接返回HTML、图片、CSS,Pages静态请求免费且不限次数。[3]
因此,Workers Builds用完,之前发布的页面不一定受影响。但如果其他额度也达到上限,或某项功能必须重新构建,就仍可能出问题。先确认“哪个计数器归零”,不要直接为整个网站办葬礼。
2. 10天消耗3,000分钟,意味着什么?
假设前10天消耗3,000分钟,平均就是每天300分钟,即5小时。按同样速度运行30天,需要9,000分钟,比免费额度多出6,000分钟。
不过,找到“额外6,000免费分钟”不意味着问题自动解决。不同机器的内存、处理速度、初始化时间和单次运行限制都不一样。
先检查浪费:改动一篇文章,是否重建了整个网站?失败任务是否不断重试?一项小检查是否占用了大机器?有时凶手不是黑客,而是那个一脸无辜的“重新运行”按钮。
3. 执行任务、定时提醒和处理网页请求,是三回事
GitHub Actions和CircleCI能真正执行脚本、测试和构建,是Workers Builds的主要替代对象。
cron-job.org能按时间访问指定网址,最快每分钟一次。但它只是闹钟,不负责替服务器干重活。[4]
Cloudflare Workers、Deno Deploy主要用于处理网络请求。立即返回一个API结果,与长时间制作大量文章,不是同一种负载。
买五个闹钟不会自动得到五个厨师。增加定时触发次数,不等于增加计算能力。
4. GitHub Actions:代码本来就在GitHub时很方便
GitHub Actions可以直接从代码仓库执行检查、转换和定期任务。GitHub Free的私有仓库,标准托管执行器每月包含2,000分钟。公共仓库的标准执行器可免费使用,但不能为了额度就把机密代码公开。[5]
它适合检查文章、合并多语言文件、准备图片和执行短脚本。
注意:定时任务不保证准点运行。GitHub官方指出,高负载时任务可能延迟甚至丢失。[6] 约好10点上班,10点48分才出现,并不是可靠的生产制度。所以系统必须能找回漏掉的任务。
PR检查和监控同样会消耗账户额度,不能把2,000分钟全部算给文章流水线。
5. CircleCI:另一个服务商的免费计算池
CircleCI Free每月提供30,000 credits,免费方案不要求绑定信用卡。机器配置越高,每分钟消耗的credits通常越多。[7][8]
| 执行环境 | 每分钟credits | 30,000 credits理论时长 |
|---|---|---|
| x86 Docker Small,2GB | 5 | 6,000分钟 |
| x86 Docker Medium,4GB | 10 | 3,000分钟 |
| x86 Docker Large,8GB | 20 | 1,500分钟 |
| Arm Docker Gen 2测试版,8GB | 6 | 5,000分钟 |
别看到6,000分钟就开始庆祝。如果工作需要8GB内存,不能硬塞进2GB机器。那相当于把鲸鱼安排进单间公寓。
Arm Gen 2测试版的官方标价是2 CPU、8GB内存、每分钟6 credits。很有吸引力,但必须测试该配置是否可用、软件是否支持Arm,以及实际速度。[8] 网络和存储也可能消耗credits。[9]
CircleCI不是无限免费的魔法盒子,但它确实提供了另一个独立的免费额度池。
6. Oracle Cloud:用虚拟机降低对“每月分钟数”的依赖
Oracle Cloud Always Free允许在一定条件下免费使用虚拟机。
2026年的重要更新: 官方现行Always Free Arm额度相当于总计2 OCPU和12GB内存,不是旧文章常写的4 OCPU和24GB。官方列出的月度额度为1,500 OCPU小时和9,000GB小时。[10][11]
自己管理虚拟机可以减少对CI执行分钟数的依赖,但也要负责系统更新、安全、密钥管理和故障恢复。某些地区可能没有可用资源;闲置机器可能被回收。[10]
这像免费送你一间工作室,结果电工、锁匠和夜班保安都要自己兼职。
7. 不必把整个网站搬离Cloudflare
把一切都搬走,可能把原本正常运行的功能一起搬坏。
更合理的分工是:GitHub保存源文件;CircleCI和GitHub Actions执行耗时任务;Cloudflare Pages分发完成的静态文件;Workers和Functions处理短API;必要时再加Oracle虚拟机。
如果Pages配置了Functions,某些看似静态的路径也可能触发Functions。Cloudflare提供_routes.json规则来排除静态路径。[12] 但涉及认证、跳转或安全检查的路径不能随便排除,否则省掉的可能不是费用,而是门锁。
另一个限制:Pages Free每月500次构建、每站最多20,000个文件。[2] 刚绕过时间限制,又撞上文件数量限制,云服务版打地鼠游戏就开始了。
8. 其他免费服务,别搞错用途
Deno Deploy可能适合部分API,但依赖Cloudflare专有数据库或实时状态的程序,通常不能直接复制运行。[13]
Vercel的Hobby免费方案限制为个人非商业使用。打算靠广告或收费功能盈利的网站,不能默认它是合规的商业免费方案。[14]
cron-job.org可以免费定时请求网址,却不能修复被调用服务已经耗尽的计算额度。[4] 也不应通过批量注册账户来规避各家使用条款。
9. 最危险的迁移事故:同一篇文章发布两次
假设Cloudflare和CircleCI同时接手文章A。一边发布了新版,另一边随后用旧版覆盖。节省了钱,却发明了时光机。
解决办法:唯一源文件、唯一派工入口。 为每项任务记录唯一ID和内容版本,只允许一个执行者在有效期内接手。记录结果,失败或超时后再交给其他执行者。最后核对真实发布的网址和内容。
密钥和未公开资料不得写入公开日志,运行器权限也应尽量小。免费迁移不应变成“向全世界免费赠送密码”。
10. 剩下20天该怎么办?
首先确认耗尽的是Workers Builds分钟、Pages构建次数,还是Workers每日请求量。其次区分必须完成的发布与质量检查、文章准备工作和可推迟的额外处理。
检查GitHub Actions剩余额度,在CircleCI Free上先试运行一项轻任务,测量内存、耗时和成功率,再逐步转移。如果长时间任务仍多,可评估Oracle虚拟机。防止重复执行的机制做好之前,不要同时开放多个生产执行入口。
问:构建分钟耗尽,网站也会停止吗? 不一定。既有静态网页的分发是不同的额度,但其他限制仍可能影响功能。[1][3]
问:CircleCI的6,000分钟能精准补上缺口吗? 只是2GB环境的理论算术,实际任务可能需要更大的机器和更多时间。[7][8]
结论:用完的是某个执行环境的额度,不是创意的寿命。
Cloudflare:“我这个月先下班。”
GitHub:“小任务我来。”
CircleCI:“可以分一些给我。”
Oracle:“有房间,维护请自理。”
站长:“原来免费套餐也能轮班?”
还没将死。只是棋盘突然多了几格。
参考资料(14条)
- Cloudflare Workers Builds — limits and pricing developers.cloudflare.com
- Cloudflare Pages — platform limits developers.cloudflare.com
- Cloudflare Pages Functions — pricing and static requests developers.cloudflare.com
- cron-job.org — free URL scheduling, up to once per minute cron-job.org
- GitHub — Actions billing and included minutes docs.github.com
- GitHub — scheduled workflow delays and dropped runs docs.github.com
- CircleCI — official Free plan and 30,000-credit allowance circleci.com
- CircleCI — resource class price list, including Arm Gen 2 beta circleci.com
- CircleCI — credits, exhaustion, storage/network implications circleci.com
- Oracle — Always Free resources, revised 2026 Arm allowances and idle reclamation docs.oracle.com
- Oracle — Free Tier and current eligibility conditions docs.oracle.com
- Cloudflare Pages Functions — invocation routing and _routes.json developers.cloudflare.com
- Deno Deploy — runtime and pricing limitations, migration suitability docs.deno.com
- Vercel — Hobby plan, non-commercial restrictions vercel.com

