跳到内容

Supabase 边缘函数

Supabase 是 Firebase 的开源替代方案,提供与 Firebase 功能类似的工具套件,包括数据库、身份验证、存储,以及现在,无服务器函数。

Supabase 边缘函数是分布在全球的服务器端 TypeScript 函数,运行更靠近您的用户,从而提高性能。这些函数使用 Deno 开发,带来了多种优势,包括改进的安全性和现代化的 JavaScript/TypeScript 运行时。

以下是开始使用 Supabase 边缘函数的方法

1. 设置

先决条件

在开始之前,请确保您已安装 Supabase CLI。如果您尚未安装,请按照 官方文档 中的说明进行操作。

创建新项目

  1. 打开您的终端或命令提示符。

  2. 通过运行以下命令,在本地计算机上的目录中创建一个新的 Supabase 项目

bash
supabase init

此命令将在当前目录中初始化一个新的 Supabase 项目。

添加边缘函数

  1. 在您的 Supabase 项目中,创建一个名为 hello-world 的新边缘函数
bash
supabase functions new hello-world

此命令将在您的项目中创建一个具有指定名称的新边缘函数。

2. Hello World

通过修改文件 supabase/functions/hello-world/index.ts 来编辑 hello-world 函数

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

// change this to your function name
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. 使用以下命令提供服务
bash
supabase start # start the supabase stack
supabase functions serve --no-verify-jwt # start the Functions watcher

--no-verify-jwt 标志允许您在本地开发期间绕过 JWT 验证。

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

此请求应返回文本“Hello from hono-server!”。

4. 部署

您可以使用单个命令在 Supabase 中部署所有边缘函数

bash
supabase functions deploy

或者,您可以通过在部署命令中指定函数名称来部署单个边缘函数

bash
supabase functions deploy hello-world

有关更多部署方法,请访问 Supabase 文档中的 部署到生产环境

在 MIT 许可下发布。