Win11 Codex Vercel环境变量丢失?生产配置注入完整指南
将Codex部署到Vercel生产环境时,本地运行正常但报错Missing environment variable OPENAI_API_KEY,这通常是因为云端运行时未正确注入环境变量。下面三个排查步骤可覆盖绝大多数场景。
在Vercel控制台手动配置环境变量
第一步:登录Vercel仪表盘,进入对应项目。
第二步:点击左侧导航栏「Settings」→「Environment Variables」。
第三步:在「Add Environment Variable」区域,键名填写OPENAI_API_KEY,值粘贴你的API密钥(无需引号、空格或换行)。
第四步:【务必勾选「Apply to all deployments」】,否则该变量仅作用于当前预览部署,新构建的生产版本仍会缺失。这是容易踩的坑。
第五步:点击「Save」,等待提示保存成功。无需重启服务,Vercel会在下次构建时自动注入变量。
通过vercel.json声明环境变量(团队协作推荐)
方法一:在项目根目录创建vercel.json文件(若已有则直接编辑)。
方法二:写入以下内容(注意缩进和逗号):
{"env": {"OPENAI_API_KEY": "@openai-api-key"}}
方法三:执行vercel secrets add openai-api-key命令,系统会提示输入密钥值。Vercel自动加密存储,@openai-api-key仅为引用别名,不暴露明文。
确认Codex通过process.env读取而非config.toml
打开项目中的Codex初始化代码(常见路径src/server/index.ts或app/api/codex/route.ts),检查密钥获取逻辑是否为:
const apiKey = process.env.OPENAI_API_KEY;
而非:
const apiKey = config.openai.apiKey;
若采用后者,即使Vercel配置了环境变量也无效——Codex启动时只读取config.toml,根本不会查process.env。务必移除硬编码或config读取逻辑,强制使用process.env路径。线上错误的80%源于此。
