You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Heroku部署时无法找到环境变量指定路径的JSON凭证文件

解决Heroku部署Google Analytics API时凭证文件找不到的问题

我在使用Google Analytics API时,创建了服务账号并将包含project_id、密钥等信息的.json凭证文件放在服务器中,本地环境变量配置如下:

GOOGLE_APPLICATION_CREDENTIALS="./validation/google-analytics/credentials.json"

本地localhost运行正常,但部署到Heroku生产服务器后出现错误:

The file at "./validation/google-analytics/credentials.json" does not exist, or is not a file. ENOENT: no such file or directory, lstat '/app".'

问题原因分析

  1. 相对路径解析差异:Heroku的默认工作目录是/app,本地的相对路径./在Heroku环境下可能因构建流程(如打包、依赖安装)导致文件实际位置偏移,路径指向错误。
  2. 凭证文件未提交到Git:如果credentials.json被.gitignore规则排除,Heroku部署时服务器上不会存在该文件。
  3. 环境变量格式错误:错误信息中的/app".显示路径解析异常,大概率是设置环境变量时引号转义或格式有误。

解决方案

方案1:确认文件实际路径并调整环境变量

通过Heroku CLI进入服务器终端,定位凭证文件的绝对路径:

heroku run bash
find /app -name "credentials.json"

将环境变量修改为该绝对路径,例如:

heroku config:set GOOGLE_APPLICATION_CREDENTIALS="/app/build/validation/google-analytics/credentials.json"

方案2:检查Git提交状态(不推荐用于敏感文件)

若凭证文件无敏感信息,检查.gitignore确保未排除该文件,然后提交到Git:

git add validation/google-analytics/credentials.json
git commit -m "Add GA credentials file"
git push heroku main

方案3:将凭证内容存入环境变量(安全首选)

直接提交敏感文件到Git存在风险,推荐将凭证内容转为字符串存入Heroku环境变量:

  1. 复制credentials.json的全部内容。
  2. 通过CLI设置环境变量:
heroku config:set GOOGLE_APPLICATION_CREDENTIALS_CONTENT='{"type": "service_account", ...}'
  1. 在代码中读取变量并临时生成文件(以Node.js为例):
const fs = require('fs');
const path = require('path');

const credsContent = process.env.GOOGLE_APPLICATION_CREDENTIALS_CONTENT;
const tempPath = path.join(__dirname, 'temp-creds.json');
fs.writeFileSync(tempPath, credsContent);
process.env.GOOGLE_APPLICATION_CREDENTIALS = tempPath;

// 初始化GA API客户端
const {AnalyticsDataClient} = require('@google-analytics/data');
const client = new AnalyticsDataClient();

方案4:修复环境变量格式错误

去掉环境变量设置中的多余引号(路径无空格时无需引号):

heroku config:set GOOGLE_APPLICATION_CREDENTIALS=./validation/google-analytics/credentials.json

内容的提问来源于stack exchange,提问作者Djaenike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 08:12:27