跳到主要内容

1. 什么是边缘函数(Edge Functions)

你可以把它理解成部署在全球 CDN 节点上的后端代码。 相比传统服务器(集中在某个机房),它有三个显著特性:

  1. 更快
    离用户更近(CDN 节点分布全球),减少网络延迟。

  2. 更省
    按调用次数计费,无需自己租服务器、维护环境。

  3. 更安全
    天生隔离执行、冷启动快、支持自动扩展。

在 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 WorkersVercel Serverless FunctionsSupabase Edge Functions
运行环境Cloudflare 全球 300+ 边缘节点,Deno 环境AWS Lambda(Node.js/Go 等),按区域部署Deno 环境,部署在 Supabase 自家节点
延迟极低(离用户最近的边缘节点执行)相对较高(冷启动 + 区域节点)边缘部署,但节点数量不如 Cloudflare
主要语言JavaScript / TypeScript(Deno API)Node.js/Go/PythonJavaScript / 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 项目的内部业务