在云服务器上配置 PolarDB Supabase,实际上是指使用阿里云提供的全托管 PolarDB Supabase 服务。
需要明确的是:PolarDB Supabase 是阿里云提供的一个“后端即服务”(BaaS)产品,它底层基于 PolarDB PostgreSQL,但上层封装了 Supabase 的所有功能(数据库、认证、实时订阅、存储等)。你不需要自己在云服务器(ECS)上手动安装 Docker 或编译 Supabase 代码。
轻量应用服务器入口:https://www.aliyun.com/product/swas
云服务器ECS入口:https://www.aliyun.com/product/ecs
云数据库入口:https://www.aliyun.com/product/rds
你只需要在阿里云控制台创建一个 Supabase 实例,然后将你的应用连接到这个实例即可。以下是详细的配置步骤:
第一步:创建 PolarDB Supabase 实例
- 登录阿里云控制台:
- 访问 阿里云 PolarDB 控制台。
- 进入 Supabase 管理页面:
- 在左侧导航栏中,找到 “AI 应用开发” 或 “Supabase 应用” 入口(具体名称可能随控制台更新略有变化,通常在 PolarDB 产品页的侧边栏)。
- 点击 “创建 Supabase 实例” 或 “快速体验”。
- 配置实例参数:
- 地域:选择离你用户最近的地域(如华东1杭州、华北2北京等)。
- 版本:通常选择最新的 PostgreSQL 兼容版本。
- 规格:如果是测试或 MVP 阶段,可以选择免费试用或最低配规格;生产环境建议选择包年包月或按量付费的高可用规格。
- 网络类型:默认通常是 VPC 内网,如果需要公网访问(用于前端 SDK 连接),确保开启了 公网地址 或使用 NAT 网关/负载均衡 暴露端口。注意:Supabase 的 API 通常需要公网可访问,以便前端和移动端调用。
- 支付与创建:
- 确认订单并完成支付(如果有费用)。等待实例状态变为 “运行中”。
第二步:获取连接信息(API Key & URL)
创建完成后,你需要获取用于代码集成的关键凭证:
- 进入实例详情:
- 在 Supabase 实例列表中,点击你的实例 ID 进入详情页。
- 获取 Supabase URL:
- 在 “基本信息” 或 “连接信息” 标签页中,找到 Supabase URL。格式通常为
<instance-id>.polardbxaisupabase.rds.aliyuncs.com或通过控制台提供的专用域名。
- 获取 API Keys:
- 在 “安全设置” 或 “API 密钥” 标签页中,你会看到两个关键的 Key:
anon key(Public Key):用于前端客户端,权限受限,只能执行 RLS(行级安全策略)允许的操作。service_role key(Secret Key):拥有超级管理员权限,严禁在前端代码中使用,仅用于后端服务器或 Edge Functions。
第三步:配置网络安全(白名单/IP)
为了确保你的云服务器(ECS)或本地开发环境能连接到 Supabase 实例:
- 添加 IP 白名单:
- 在 Supabase 实例的 “安全设置” 中,找到 “IP 白名单”。
- 如果你是从本地开发,添加你当前的公网 IP。
- 如果是从 ECS 服务器后端调用,添加 ECS 的内网 IP 或公网 IP(取决于网络架构)。
- 配置防火墙:
- 确保 ECS 的安全组规则允许出站访问 Supabase 实例的端口(通常是 5432 或 Supabase 特定的 API 端口)。
第四步:在应用中集成 Supabase SDK
在你的前端或后端项目中,使用官方 SDK 进行连接。以 JavaScript/TypeScript 为例:
import { createClient } from '@supabase/supabase-js' // 替换为你的实际 URL 和 Key const supabaseUrl = 'https://<your-instance-id>.polardbxaisupabase.rds.aliyuncs.com' const supabaseAnonKey = '<your-anon-key>' const supabase = createClient(supabaseUrl, supabaseAnonKey) // 测试连接 async function getData() { const { data, error } = await supabase.from('your_table_name').select('*') if (error) throw error return data }
第五步:配置高级功能(可选)
- 启用 Realtime(实时订阅):
- 在控制台开启 Realtime 功能,并在数据库中设置发布表(Publish Table)。
- 配置 Storage(文件存储):
- 在控制台上传文件或配置 Bucket,SDK 会自动生成存储 API。
- 配置 Auth(身份认证):
- 在控制台的 “Auth” 部分配置邮箱验证码、OAuth 提供商(如微信、GitHub 登录)等。
- 部署 Edge Functions(边缘函数):
- 如果需要使用服务端逻辑,可以在控制台编写并部署 Deno 运行的 Edge Functions。
常见问题与注意事项
- ICP 备案:如果你的 Supabase 实例部署在中国大陆地域,且通过公网访问,通常要求关联的资源(如域名、ECS)已完成 ICP 备案。
- 数据迁移:如果你已有现有的 PostgreSQL 数据,可以使用阿里云 DTS(数据传输服务)将数据同步到 PolarDB Supabase 实例。
- 自托管 vs 托管:如果你坚持要在自己的云服务器上完全自托管 Supabase(即自己维护 Docker 容器),则不属于“PolarDB Supabase”范畴,而是标准的 Supabase 开源项目部署。这需要你在 ECS 上安装 Docker、Docker Compose,并手动配置所有组件(Postgres, GoTrue, PostgREST, Realtime, Storage 等)。但这种方式运维成本高,且失去了阿里云的性能和优化优势。推荐使用上述的全托管方案。
总结
配置 PolarDB Supabase 的核心在于:在阿里云控制台一键创建实例 -> 获取 URL 和 Key -> 在代码中集成 SDK。无需在云服务器上手动搭建复杂的 Supabase 架构。