编程 Edge Function 硬限制对照:Cloudflare 10ms、EdgeOne 200ms、Supabase 2s CPU 上限

2026-09-28 00:04:18

Edge Function 硬限制对照:Cloudflare 10ms、EdgeOne 200ms、Supabase 2s CPU 上限

选边缘函数之前,先把各平台的硬限制拉出来比一遍。下面所有数字来自各平台官方文档,抓取/更新日期标在每节标题后,未标注的项说明文档没给出。

总表

平台CPU / 执行时间内存部署体积请求 body
Cloudflare WorkersFree 10ms;Paid 默认 30s,最大 300000ms128MB / isolate未压缩 64MiBFree/Pro 100MB,Business 200MB,Enterprise 最高 5GB
腾讯云 EdgeOne200ms(不含 I/O 等待)128MB代码包 5MB1MB
阿里云 ESA / EdgeRoutine文档未给出,需自行核实文档未给出,需自行核实文档未给出,需自行核实文档未给出,需自行核实
Supabase Edge FunctionsCPU 2s(不含 async I/O);墙钟 Free 150s / Paid 400s256MBCLI 20MB,服务端打包 5MB文档未给出,需自行核实
Vercel FunctionsEdge 25s 内开始响应,可流式至 300s;时长默认 300s,Pro/Ent 最大 800sHobby 2GB/1vCPU,Pro/Ent 最大 4GB/2vCPU未压缩 250MB,Python 500MB4.5MB

Cloudflare Workers(2026-09-05 更新)

文档:https://developers.cloudflare.com/workers/platform/limits/

  • CPU 时间按 HTTP 请求计:Free 10ms;Paid 默认 30s,可调到最大 5 分钟,即 300000ms,wrangler 配置项 limits.cpu_ms。
  • Subrequests:Free 50/请求,Paid 10000/请求(最高 10M);访问内部服务的 subrequest Free 1000。
  • 同时打开的连接(等待响应头)每请求 6 个。
  • 环境变量:Free 64/Worker,Paid 128/Worker,单个 5KB。
  • URL 16KB,请求/响应头各 128KB;响应 body 无硬限。
  • Worker 数:Free 100,Paid 500。Cron Triggers:Free 5,Paid 250。
  • 每日请求:Free 100,000/天,UTC 零点重置;Paid 无限制。

容量参考:平均每请求约 2.2ms CPU,鉴权、SSR、大 payload 解析典型落在 10–20ms。

腾讯云 EdgeOne 边缘函数(2026-05-09 更新)

文档:https://www.tencentcloud.com/zh/document/product/1145/53372

  • 代码包 5MB,请求 body 1MB,CPU 时间 200ms(不含 I/O 等待)。
  • 运行内存 128MB,含代码、变量与数据缓冲;每个执行环境内存隔离,极端负载下超限请求可能被提前回收。
  • 开发语言仅 JavaScript。console 调用最多 20 次,超过不再打印;for/for in/for of/while/do while 循环执行次数上限 100000。
  • 单站点最多 100 个函数、200 条触发规则;函数名 2~30 字符。
  • 执行模型:客户端请求到边缘节点网关,命中触发规则后由边缘函数接管执行 JS,函数可发子请求访问缓存、回源或访问公网;执行异常可选回源或返回 5xx。

阿里云 ESA / EdgeRoutine

文档:https://www.alibabacloud.com/help/zh/edge-security-acceleration/dcdn/user-guide/what-is-er

  • 基于 Serverless,JS 代码部署到全球边缘节点(文档称 3200+ 节点),支持 ES6 语法与标准 Web Service Worker API。
  • 仅支持 JS;仅支持 HTTPS,不支持 WebSocket 与 TCP/UDP 协议接入。
  • 触发模式两种:重定向(请求完全被边缘函数接管)、旁路(只触发函数执行,再继续按 DCDN 配置回源,适合鉴权校验、日志打点)。
  • 边缘存储为 Key-Value,低频写、高频读,数据同步到全球节点供同节点读取。
  • CPU、内存、代码体积等硬限该文档未给出,需自行核实。

Supabase Edge Functions

文档:https://supabase.com/docs/guides/functions/limits

  • 运行时:最大内存 256MB;最大墙钟时长 Free 150s、Paid 400s;最大 CPU 时间 2s(不含 async I/O);请求空闲超时 150s。
  • 函数体积:CLI 本地打包最大 20MB,服务端打包(Management API / 控制台)最大 5MB。
  • 项目函数数:Free 100 / Pro 1000 / Team 2000 / Enterprise 无限。
  • 日志:单条最多 10000 字符;日志事件阈值 100 事件/10 秒。
  • 递归/嵌套调用:每 trace 30 请求,60 秒窗口。
  • Secrets:每项目最多 100 个,名字最长 256 字符,值最大 48KiB(24576 字符),名字不能以 SUPABASE_ 开头。
  • 出站端口 25 与 587 不允许。HTML 内容只在自定义域名下支持,否则返回 text/html 的 GET 会被改写为 text/plain。
  • 不支持 Web Worker API(或 Node vm API);需要多线程的 Node 库不支持,例如 libvips、sharp。
  • 基于 Deno,TypeScript/WASM 优先。本地运行:
supabase functions serve

Vercel Functions(2026-08-24 更新)

文档:https://vercel.com/docs/functions/limitations

  • Edge runtime:必须在 25 秒内开始发送响应以保持流式能力,之后可继续流式输出最多 300 秒。
  • 内存:Hobby 2GB/1 vCPU;Pro/Enterprise 最大 4GB/2 vCPU。
  • 时长:默认 300s;Pro/Enterprise 最大 800s,扩展最大 1800s(Beta)。
  • 体积(未压缩):250MB,Python 500MB;Large functions(Beta)最大 5GB(Node/Bun/Python)。
  • 请求/响应 body 最大 4.5MB。
  • 文件描述符 1024,跨所有并发执行共享,含运行时自身占用。
  • 默认单区域 iad1;Pro/Enterprise 可多区域。
  • 计费按活跃 CPU 时间 + 预置内存时间。

错误码 → 原因对照

错误 / 现象平台原因
Error 1102Cloudflare超资源限制:CPU 超限时 outcome 为 exceededCpu,内存超限为 exceededMemory
Memory limit would be exceeded before EOFCloudflareisolate 内存超限
Error 1027Cloudflare免费版单日 100,000 请求用尽(UTC 零点重置),可配 fail open / fail closed
Script startup exceeded CPU time limit(code 10021)Cloudflare全局作用域解析执行超过 1 秒启动时间
504 Gateway TimeoutSupabase请求空闲超时 150s
504 FUNCTION_INVOCATION_TIMEOUTVercel函数超过时长上限
413 FUNCTION_PAYLOAD_TOO_LARGEVercel请求/响应 body 超 4.5MB

Cloudflare 的 CPU 超限在仪表盘 Errors > Invocation Statuses 显示为 Exceeded CPU Time Limits,Logpush outcome 为 exceededCpu。

判断能不能落地

按顺序比对这几项,任一不过就先改架构再谈平台:

  1. 单请求 CPU 预算。Free 档 Cloudflare 只有 10ms,只够做轻量改写。带鉴权、SSR、大 payload 解析的按 10–20ms 估,Paid 默认 30s 够用,但要确认是否触碰 EdgeOne 的 200ms 或 Supabase 的 2s CPU 硬顶。
  2. 请求 body 大小。超过 1MB 排除 EdgeOne;超过 4.5MB 排除 Vercel;100MB 以上只剩 Cloudflare 的 Business/Enterprise 档。
  3. 部署体积。超过 5MB 排除 EdgeOne 与服务端打包的 Supabase 函数;超过 20MB 排除 Supabase CLI 打包;超过 64MiB 排除 Cloudflare Workers。
  4. 协议与运行时。要 WebSocket 或 TCP/UDP 的排除 ESA;要用 Web Worker API 或 libvips、sharp 这类多线程 Node 库的排除 Supabase;只接受 JavaScript 的约束见 EdgeOne 与 ESA。
  5. 出站网络。需要发邮件走 25/587 端口的排除 Supabase。
  6. 并发资源。Vercel 的 1024 个文件描述符跨所有并发执行共享,且包含运行时自身占用,高并发下要预留。
  7. 配额与计费。Cloudflare Free 每日 10 万请求是硬线,超限 Error 1027;Supabase 按套餐限制项目函数数;Vercel 按活跃 CPU 时间 + 预置内存时间计费。

推荐文章

程序员茄子在线接单