Supabase Edge Functions无法读取自定义环境变量求助
问题分析与解决方法
你的问题出在自定义环境变量的加载路径和配置方式上,Supabase Edge Functions对.env文件的位置和部署环境的变量设置有特定要求,具体解决步骤如下:
1. 本地开发环境的.env配置
方式一:调整.env文件位置
将根目录的.env文件移动到supabase/functions/目录下(与你的test/index.ts同级),这样本地运行Edge Functions时会自动加载该目录下的环境变量,无需额外参数。
方式二:指定.env文件路径
如果不想移动.env文件,在启动函数时通过--env-file参数指定根目录的.env路径:
supabase functions serve test --env-file ../.env
2. 云端部署环境的变量配置
本地的.env文件不会被同步到Supabase云端,必须单独设置云端的环境变量:
方法一:使用Supabase CLI
在终端执行以下命令(替换为你的实际密钥值):
supabase secrets set STRIPE_PUBLISHABLE_KEY=123 supabase secrets set STRIPE_SECRET_KEY=456
方法二:通过Supabase控制台设置
- 登录你的Supabase项目控制台
- 进入Settings → Edge Functions → Secrets
- 点击Add a new secret,分别添加
STRIPE_PUBLISHABLE_KEY和STRIPE_SECRET_KEY及对应值
3. 验证配置
修改后重启本地函数服务或重新部署云端函数,再次打印Deno.env.get("STRIPE_PUBLISHABLE_KEY")即可正常读取变量值。
注意:本地.env文件包含敏感信息,务必添加到
.gitignore中,避免提交到版本仓库。
内容的提问来源于stack exchange,提问作者Luke Sharon
相关产品推荐
相关产品推荐

