使用Deno Fresh和Supabase Postgres,如何在Deno Deploy中配置--cert flag?
在Deno Deploy中配置Supabase Postgres证书的方案
Deno Deploy不支持通过--cert命令行flag配置证书,你可以直接在代码中通过环境变量加载证书内容,替代本地的命令行配置方式,具体步骤如下:
1. 准备Supabase CA证书
从Supabase控制台的数据库设置页面,下载对应项目的CA证书,复制证书的完整文本内容。
2. 在Deno Deploy中添加环境变量
进入你的Deno Deploy项目设置,添加一个名为SUPABASE_CA_CERT的环境变量,将刚才复制的证书内容粘贴进去。
3. 在代码中配置证书
根据你使用的客户端类型,选择对应配置方式:
使用Supabase JS客户端
import { createClient } from "https://esm.sh/@supabase/supabase-js@2"; const supabase = createClient( Deno.env.get("SUPABASE_URL")!, Deno.env.get("SUPABASE_ANON_KEY")!, { db: { ssl: { ca: Deno.env.get("SUPABASE_CA_CERT")!, }, }, } );
使用Postgres原生客户端
import { Client } from "https://deno.land/x/postgres@v0.17.0/mod.ts"; const client = new Client({ user: Deno.env.get("SUPABASE_DB_USER")!, password: Deno.env.get("SUPABASE_DB_PASSWORD")!, database: Deno.env.get("SUPABASE_DB_NAME")!, hostname: Deno.env.get("SUPABASE_DB_HOST")!, port: 5432, ssl: { ca: Deno.env.get("SUPABASE_CA_CERT")!, }, }); await client.connect();
说明
Deno Deploy的运行环境默认信任主流CA颁发的证书,Supabase Postgres的证书通常已被信任,但如果你的场景需要自定义证书,上述方法可以完美替代本地的--cert配置。
内容的提问来源于stack exchange,提问作者Bilal Bera
相关产品推荐
相关产品推荐

