很多人以为 Supabase 只是“数据库 + Auth + SDK”。
其实它还有很重要的一块:
Edge Functions。
这部分非常适合被理解成:
港口调度中心。
官方文档明确说明:
- Edge Functions 是全局分布式的 TypeScript 函数
- 运行在 Supabase Edge Runtime
- Deno compatible
- 适合 webhook、第三方集成、低延迟 HTTP 端点等
一个最小示例:
import { createClient } from "npm:@supabase/supabase-js@2";
Deno.serve(async (req: Request) => {
const supabase = createClient(
Deno.env.get("SUPABASE_URL") ?? "",
Deno.env.get("SUPABASE_ANON_KEY") ?? "",
{
global: {
headers: {
Authorization: req.headers.get("Authorization") ?? "",
},
},
}
);
const { data, error } = await supabase.from("projects").select("id, name");
if (error) {
return new Response(error.message, { status: 500 });
}
return Response.json(data);
});这段代码很关键。
因为官方文档也特别讲到一个点:
你可以把调用者的 Authorization 头传进去,这样函数里的数据库访问也能继续受 RLS 约束。
这像什么?
港口调度中心帮你办理手续
但依然按来港船只的真实证件和通关规则办事#Edge Functions 适合做什么
- webhook 接收
- 第三方服务集成
- 需要保密的服务端逻辑
- 轻量低延迟 API
- 生成签名
- AI / 邮件 / 支付等外围集成
#不适合硬塞什么
- 超长耗时批处理
- 极重后台作业
- 复杂、长生命周期的重服务编排
官方文档也提示:
- 会有 cold starts
- 重任务更适合 background workers
- 数据库连接要按 serverless 思维处理
也就是说:
调度中心很灵活,但不是让你把整座工业园都搬进去。