Skip to content

Supabase Edge Functions

Supabase 是开源的 Firebase 替代方案,提供数据库、身份验证、存储以及如今的无服务器函数等能力。

Supabase Edge Functions 是在全球分发的服务端 TypeScript 函数,可在更接近用户的位置运行以提升性能。这些函数基于 Deno,带来了更好的安全性以及现代化的 JavaScript/TypeScript 运行时体验。

以下是使用 Supabase Edge Functions 的快速指南:

1. 环境准备

前置条件

开始之前,请确保已安装 Supabase CLI。若尚未安装,可按照官方文档 操作。

创建新项目

  1. 打开终端或命令行窗口。
  2. 在本地目录中执行以下命令初始化 Supabase 项目:
bash
supabase init

上述命令会在当前目录创建一个新的 Supabase 项目。

新增 Edge Function

  1. 在项目内创建名为 hello-world 的 Edge Function:
bash
supabase functions new hello-world

该命令会在项目中生成指定名称的 Edge Function。

2. Hello World

编辑 supabase/functions/hello-world/index.ts

ts
import { Hono } from 'jsr:@hono/hono'

// 将此处替换为函数名称
const functionName = 'hello-world'
const app = new Hono().basePath(`/${functionName}`)

app.get('/hello', (c) => c.text('Hello from hono-server!'))

Deno.serve(app.fetch)

3. 运行

在本地运行函数:

  1. 启动 Supabase 环境并运行函数监视器:
bash
supabase start # 启动 Supabase 全家桶
supabase functions serve --no-verify-jwt # 启动函数监听

--no-verify-jwt 参数用于在本地开发时跳过 JWT 校验。

  1. 使用 cURL 或 Postman 请求 http://127.0.0.1:54321/functions/v1/hello-world/hello
bash
curl --location 'http://127.0.0.1:54321/functions/v1/hello-world/hello'

即可得到 “Hello from hono-server!” 的响应。

4. 部署

可通过以下命令一次性部署所有 Edge Functions:

bash
supabase functions deploy

若只部署单个函数,可指定名称:

bash
supabase functions deploy hello-world

更多部署方式请参考 Supabase 文档:Deploying to Production

Released under the MIT License.