1. 什么是边缘函数(Edge Functions)
你可以把它理解成部署在全球 CDN 节点上的后端代码。 相比传统服务器(集中在某个机房),它有三个显著特性:
-
更快
离用户更近(CDN 节点分布全球),减少网络延迟。 -
更省
按调用次数计费,无需自己租服务器、维护环境。 -
更安全
天生隔离执行、冷启动快、支持自动扩展。
在 Supabase 里,Edge Functions 本质上是运行在 Deno 运行时上的 TypeScript/JavaScript 无服务器函数。
2. Supabase Edge Functions 能做什么?
在纯前端 + Supabase 的架构中,它是一个补足客户端不能做的事情的后端,比如:
-
保护 service_role key(超级密钥,不应该放在前端)
-
与第三方 API 交互(隐藏 API key)
-
数据库的复杂逻辑处理
-
定时任务(可通过外部触发)
-
数据清洗 / 格式转换
2. Cloudflare Workers、Vercel Serverless、Supabase Edge Function 都属于边缘函数吗?有什么区别?
它们都可以算是“边缘函数(Edge Functions)”的范畴,但定位、运行环境和适用场景有明显区别。 我给你做一个“边缘函数三兄弟”对比表,你一眼就能看明白。
1️⃣ 它们的共同点
- 都是 无服务器(Serverless),按调用计费,免维护服务器
- 都可以让前端直接调用,实现后端逻辑
- 都可以安全保存密钥(API Key、数据库密码等)
- 都运行在“接近用户的节点”,降低网络延迟
2️⃣ 核心区别对比
| 特性 | Cloudflare Workers | Vercel Serverless Functions | Supabase Edge Functions |
|---|---|---|---|
| 运行环境 | Cloudflare 全球 300+ 边缘节点,Deno 环境 | AWS Lambda(Node.js/Go 等),按区域部署 | Deno 环境,部署在 Supabase 自家节点 |
| 延迟 | 极低(离用户最近的边缘节点执行) | 相对较高(冷启动 + 区域节点) | 边缘部署,但节点数量不如 Cloudflare |
| 主要语言 | JavaScript / TypeScript(Deno API) | Node.js/Go/Python | JavaScript / TypeScript(Deno API) |
| 冷启动 | 几乎无冷启动 | 有冷启动(尤其在低访问量时) | 几乎无冷启动 |
| 生态集成 | 强调 CDN、KV、缓存、网络加速 | 强调与 Vercel 前端部署集成(Next.js 无缝) | 与 Supabase 数据库、Auth、Storage 无缝集成 |
| 使用门槛 | 偏低(有 Wrangler CLI) | 很低(直接跟前端代码一起部署) | 很低(直接 supabase functions deploy) |
| 计费模式 | 免费额度大,按请求+CPU时间计费 | 免费额度小,按执行时间计费 | 免费额度大,按调用次数计费 |
| 适用场景 | 高并发 API、CDN 缓存、图像处理、边缘计算 | 小规模 API、SSR 渲染、表单处理 | 高权限 DB 操作、业务逻辑、直接操作 Supabase 数据 |
3️⃣ 各自更擅长的场景
Cloudflare Workers
- 靠近用户执行,延迟最低
- 适合高并发 API、静态内容变换、缓存、边缘计算
- 可配合 Cloudflare KV、Durable Objects 存储数据
- 不依赖特定后端,通用性强
Vercel Serverless
- 适合和 Next.js / Nuxt / Remix 等前端框架配套使用
- SSR(服务器端渲染)或 ISR(增量静态生成)必选
- 部署极简单,前端 + 后端一体化
- 缺点:冷启动延迟明显,不适合极高频 API 调用
Supabase Edge Functions
- 专门为 Supabase 项目做的无服务器计算
- 与 Supabase Auth、DB、Storage 无缝衔接(无需额外 SDK/配置)
- 用来执行高权限数据库操作(Service Role Key)、数据清洗、外部 API 调用
- 如果整个项目都在 Supabase 上,集成度最高、最方便
4️⃣ 总结一句话
- Cloudflare Workers → 像高速公路收费站,靠近用户、延迟最低,擅长高并发和边缘缓存
- Vercel Serverless → 像写字楼里的服务台,跟前端办公室(Next.js)一体化,但速度取决于电梯(冷启动)
- Supabase Edge Function → 像银行内部窗口,直接连数据库金库(高权限),专注于你 Supabase 项目的内部业务