PolarDB Supabase Edge Functions - 让函数,随时可用

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: PolarDB Supabase Edge Functions 是现代全栈开发的无服务器引擎,基于 Deno 运行时构建,支持在全球边缘节点部署自定义代码,实现低延迟、高可用的 API 与事件处理。它提供 CLI 和可视化 Studio 两种开发方式,打造高效开发闭环。相比开源版 Supabase,PolarDB Supabase 在公有云环境中实现了完整功能闭环,兼顾企业级控制力与便捷开发体验。

在现代全栈开发中,边缘函数(Edge Functions)已成为连接前端与后端逻辑的关键枢纽。它让开发者无需管理服务器,即可将自定义代码部署在全球边缘节点,实现低延迟、高可用、自动扩展的 API 与事件处理能力。PolarDB Supabase 支持完整的 Edge Functions 功能闭环,成为业内少数在公有云托管环境中实现这一能力的平台。


什么是 Supabase Edge Functions?为现代应用而生的无服务器引擎

Supabase Edge Functions 是一套基于Deno 运行时构建的轻量级无服务器服务,是一种为全栈应用量身打造的现代化边缘计算解决方案。

核心能力一览

典型应用场景

Edge Functions 不仅是“写个 API”,更是连接前后端、第三方服务与业务系统的智能中枢:

开发体验:极简、高效、现代化

Supabase 为 Edge Functions 提供了两种主流开发方式,满足不同团队的工作流需求:

1. 通过 CLI 部署(适合专业开发者与 CI/CD)

  • 本地打包:使用 supabase cli 将源码编译为单个 main.js
  • 安全上传:通过 Bearer Token 认证推送至云端;
  • 适合自动化部署、GitOps 流程;

2. 通过 Studio 可视化部署(适合快速迭代与团队协作)

  • 在浏览器中直接编辑函数代码;
  • 点击“Save and Deploy”一键发布;
  • 支持语法高亮、错误提示、实时保存;
  • 无需本地环境,适合产品经理、运维人员参与开发;

这两种方式共同构成了 Supabase Cloud 上 完整、高效、开箱即用 的无服务器开发闭环。


开源版 Supabase 的“能力断层”:有引擎,无驾驶舱

Supabase 是开源的,但它的 Edge Functions 管理后台(FaaS Backend)并未开源。这意味着:

  • 您可以在本地使用 supabase start 运行边缘函数(模拟环境);
  • 也可以部署一个包含 edge-runtime 的容器;
  • 但您无法通过 Studio 创建、编辑或部署函数;
  • 也无法通过 CLI 将代码推送到自建实例;

许多企业在尝试自建 Supabase 时,发现 Edge Functions 功能“不可用”或“只能靠手动脚本部署”,最终放弃使用这一核心能力。


Supabase Cloud vs. 公有云托管:一场关于隔离性与控制力的权衡

维度

Supabase Cloud

自建开源版本

PolarDB Supabase

Edge Functions 可用性

✅ 完整支持

❌ 无管理后台

✅ 完整支持

开发体验

✅ Studio + CLI

❌ 仅能本地模拟

✅ 打包脚本 + Studio 可视化部署

运维控制力

✅ 全托管

❌ 自主运维

✅ 全托管 + 企业级能力

网络延迟

✅ 全球边缘

❌ 依赖自建部署位置

✅ 支持边缘节点部署

函数代码归属

❌ 存于 Supabase 平台

✅ 完全由客户掌控

✅ 代码与元数据归属客户


PolarDB Supabase:打破两难,兼顾功能完整与企业级控制力

我们深知企业客户的需求:既要现代化的开发体验,又要对资源、数据和系统拥有更强的控制力。

因此,PolarDB Supabase 在 公有云托管环境 下,采用 独立实例(Isolated Instance) 架构,并自主研发轻量级 FaaS 管理系统,成功补全了开源版 Supabase 缺失的最后一块拼图 - Edge Functions。

我们带来了什么?

您获得的是:与 Supabase Cloud 几乎一致的开发体验,但运行在资源独享、数据可控的独立实例中。


立即体验:30 秒开启第一个边缘函数

1. 登录 PolarDB Supabase Studio;

2. 进入 “Edge Functions” 页面;

3. 可通过下面三种方式的任意一种来完成代码编辑;

  • 代码编辑器

  • 本地打包上传eszip(包含所有依赖)

  • 本地打包上传zip(不包含依赖,上传后服务端打包依赖)

4. 调用 URL:

http://<supabase实例公网地址>/functions/v1/hello-world


最佳实践

1. 参考最佳实践文档,实战一个完整的Web应用。https://help.aliyun.com/zh/polardb/polardb-for-postgresql/polardb-supabase-best-practices?utm_content=g_1000406225

2. 登录 PolarDB Supabase Studio,进入 “Edge Functions” 页面,点击 “New Function”,Function name 输入:tongyi;

3. 代码编辑框填入下面内容,点击 “Save and Deploy”。代码逻辑是调用通义API,总结会议纪要。注意:代码中要填入您的通义大模型 apiKey;


import"jsr:@supabase/functions-js/edge-runtime.d.ts";
import { OpenAI } from "npm:openai@4.8.0";
// CORS headers
const corsHeaders = {
  'Access-Control-Allow-Origin': '*',
  'Access-Control-Allow-Headers': 'authorization, apikey, content-type',
  'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
  'Content-Type': 'application/json,charset=utf-8'
};
const openai = new OpenAI({
  apiKey: "your api key",
  baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1"
});
Deno.serve(async (req)=>{
  if (req.method === 'OPTIONS') {
    return new Response('ok', {
      headers: corsHeaders
    });
  }
  const { prompt } = await req.json();
  const response = await openai.chat.completions.create({
    model: "qwen-turbo",
    messages: [
      {
        role: "system",
        content: "你是一个专业的会议纪要助手,能够根据会议内容生成结构化的会议纪要。"
      },
      {
        role: "user",
        content: prompt
      }
    ]
  });
  return new Response(JSON.stringify({
    answer: response.choices[0].message.content
  }), {
    headers: corsHeaders
  });
});

4. 按照最佳实践文档启动本地运行:pnpm run dev;

5. 进入会议,填写一些会议内容,点击AI纪要总结。前端会请求 Edge Functions 函数,利用通义大模型生成会议纪要,效果见下图:

结语:让强大,更自由

Supabase 的强大,在于它让全栈开发变得简单。 而真正的自由,是既能享受这份简单,又能掌控自己的数据、资源与架构。

PolarDB Supabase 不做功能的搬运者,我们是完整体验的创造者。 在公有云的便利之上,构建独立实例的确定性;在开源的能力之外,补全企业所需的每一块拼图。

🌐 您不必在“开箱即用”和“自主可控”之间妥协。 现在,你可以同时拥有两者。


PolarDB Supabase Edge Functions

—— 在公有云上,释放 Supabase 的全部潜能,补全开源缺失的最后一块拼图。


来源  |  阿里云开发者公众号

作者  |  倾扬

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
5月前
|
人工智能 关系型数据库 分布式数据库
PolarDB Supabase 助力快速构建现代应用
简介:本文介绍了在AI时代背景下,如何通过阿里云瑶池推出的全托管Supabase服务快速构建现代应用。该服务基于开源Supabase与PolarDB-PG数据库,提供一站式后端解决方案,涵盖实时数据库、身份认证、文件存储及AI能力,助力开发者高效迭代业务,降低运维复杂度。适用于协作类应用、SaaS平台、移动开发等多种场景。
|
SQL 关系型数据库 分布式数据库
在PolarDB for PostgreSQL中,你可以使用LIKE运算符来实现类似的查询功能,而不是使用IF函数
在PolarDB for PostgreSQL中,你可以使用LIKE运算符来实现类似的查询功能,而不是使用IF函数
210 7
|
SQL 存储 关系型数据库
PolarDB产品使用合集之有的sql里面有自定义存储函数 如果想走列存有什么优化建议吗
PolarDB是阿里云推出的一种云原生数据库服务,专为云设计,提供兼容MySQL、PostgreSQL的高性能、低成本、弹性可扩展的数据库解决方案,可以有效地管理和优化PolarDB实例,确保数据库服务的稳定、高效运行。以下是使用PolarDB产品的一些建议和最佳实践合集。
421 0
|
SQL 关系型数据库
PolarDB-X 1.0-SQL 手册-拆分函数使用说明-WEEK
使用要求 拆分键的类型必须是DATE、DATETIME或TIMESTAMP其中之一。 只能作为分表函数使用,但不能作为分库函数。 PolarDB-X实例的版本必须是5.1.28-1320920及其以上的版本。PolarDB-X版本说明请参见版本说明。
262 0
|
XML JSON 网络协议
PolarDB-X 1.0-SQL 手册-函数-函数
DRDS 支持的函数分为日期时间函数、字符串函数、转换函数、聚合函数、数学函数、比较函数、位函数、控制流程函数、信息函数、加密和压缩函数以及其他函数;JSON 函数和地理信息函数的下推执行。
275 0
|
关系型数据库 Unix 分布式数据库
PolarDB-X 1.0-SQL 手册-函数-日期时间函数
DRDS 支持如下日期时间函数:
562 0
|
SQL 关系型数据库 分布式数据库
PolarDB-X 1.0-SQL 手册-函数-字符串函数
DRDS 支持如下字符串函数:
404 0