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

Airflow无法找到credentials.json文件路径的问题排查与解决

解决Airflow中找不到credentials.json文件的问题

你遇到的FileNotFoundError通常由路径权限、实际文件位置不符或Airflow部署配置问题导致,以下是具体排查和修复方案:

可能的原因及修复步骤

1. Airflow运行用户无文件读取权限

Airflow默认以airflow用户运行,即便文件存在目标路径,若用户没有读取权限也会触发报错。

  • 修复命令:
    # 修改文件所属用户为airflow
    sudo chown airflow:airflow /opt/airflow/data/credentials.json
    # 设置文件可读权限
    sudo chmod 644 /opt/airflow/data/credentials.json
    

2. 文件实际路径与代码指定路径不符

你可能误以为文件已放置到目标路径,但实际存在拼写错误、大小写差异(Linux系统路径区分大小写),或是Docker部署时本地目录未正确映射到容器内。

  • 排查方式:
    • 本地部署Airflow:直接在服务器执行ls /opt/airflow/data/查看文件是否存在。
    • Docker部署Airflow:进入容器内部检查路径,命令如下:
      # 找到Airflow worker或webserver容器ID
      docker ps
      # 进入容器
      docker exec -it <container_id> bash
      # 检查文件是否存在
      ls /opt/airflow/data/
      
  • 代码中添加存在性校验(辅助排查):
    def connect_data_from_gsheet():
        credentials_file = '/opt/airflow/data/credentials.json'
        # 先校验文件是否存在
        if not os.path.exists(credentials_file):
            raise FileNotFoundError(f"Credentials file missing at: {credentials_file}")
        gc = gspread.service_account(filename=credentials_file)
        sheet = gc.open("MDA_team_member_copy")
    

3. Docker部署时未正确挂载数据目录

若使用Docker Compose部署Airflow,需确保本地的/opt/airflow/data目录已挂载到容器内对应路径,否则容器内无法访问本地文件。

  • 修复:检查docker-compose.yml中的volumes配置,添加或确认以下映射:
    services:
      airflow-webserver:
        volumes:
          - ./data:/opt/airflow/data
      airflow-worker:
        volumes:
          - ./data:/opt/airflow/data
    
    修改后重启Airflow服务:
    docker-compose down && docker-compose up -d
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 09:02:24