SuperAPI AI 工具集

supabase-functions

部署与运维

查看项目

更新于 10-15 10:53

技能介绍

用途

Supabase Edge Functions 技能用于在 Deno 运行时下开发与部署 Supabase 边缘函数(Edge Functions)。它适合需要创建无服务器函数、Webhook、API 端点或定时任务的场景。

主要能力

该技能覆盖了 Supabase Edge Functions 的完整工作流:

  • 函数管理:通过 CLI 创建、本地服务、部署和删除函数。
  • 本地开发:支持本地服务所有函数,可加载环境变量文件,也可关闭 JWT 验证。
  • 函数结构:提供基础函数模板,使用 Deno.serve 处理请求。
  • CORS 处理:展示如何处理跨域预检请求和设置响应头。
  • Supabase 客户端:演示如何使用 service role 或用户 JWT 创建客户端,并查询数据。
  • 用户认证:从 JWT 中获取用户信息,处理未授权情况。
  • 环境变量与密钥:设置、列出密钥,并在函数中访问内置变量。
  • 部署与调用:部署单个或所有函数,支持关闭 JWT 验证,并可从 JavaScript 调用。
  • Webhook 函数:以 Stripe Webhook 为例,展示签名验证和事件处理。
  • 数据库 Webhook:通过数据库触发器调用函数。
  • 定时任务:使用 pg_cron 扩展调度函数。
  • 配置:通过 config.toml 配置函数的 JWT 验证和 import map。
  • 共享代码:使用 _shared 文件夹存放可复用代码。

使用方式

通过 Supabase CLI 执行命令,例如:

  • 创建函数:supabase functions new <name>
  • 本地服务:supabase functions serve
  • 部署:supabase functions deploy <name>
  • 删除:supabase functions delete <name>
  • 设置密钥:supabase secrets set KEY=value
  • 列出密钥:supabase secrets list

函数代码使用 TypeScript 编写,导入 jsr:@supabase/functions-js/edge-runtime.d.ts,并通过 Deno.serve 定义处理逻辑。

适用场景

  • 构建无服务器 API 端点
  • 处理第三方 Webhook(如 Stripe)
  • 响应数据库变更(数据库 Webhook)
  • 执行定时任务(Cron)
  • 需要与 Supabase 数据库和认证集成的后端逻辑

限制

根据资料,Supabase Edge Functions 存在以下限制:

  • CPU 时间:2 秒
  • 请求超时:150 秒
  • Wall Clock(Pro):400 秒
  • 打包大小:20 MB

其他限制暂未提供。