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

Azure DevOps Release阶段Bash脚本无法读取dbfs_api.json文件问题

问题产生原因

  • Release流水线默认未拉取代码仓库内容:Azure DevOps的Build流水线默认会自动拉取关联仓库的源码,但Release流水线默认不会执行拉取源码的操作,你需要用到的conf文件夹根本没有被同步到流水线的运行节点上,自然找不到对应文件。
  • 工作目录不匹配:就算你配置了拉取源码,如果你没有将bash脚本的执行工作目录切换到源码拉取的目标根目录,直接用相对路径conf/dbfs_api.json也会因为当前执行目录不对找不到文件。
  • 路径转义问题:从报错的路径D:ar1a/conf/dbfs_api.json可以看出,Windows节点默认的路径分隔符反斜杠\在bash环境中被当成了转义符,原本的路径D:\a\r1\a被转义后丢失了分隔符变成了D:ar1a,也会导致路径识别错误。

解决方案

  1. 给Release流水线添加拉取源码的步骤:
    在Release的阶段编辑页,添加「获取源代码」任务,关联你存放conf文件夹的代码仓库,配置好对应的分支即可,执行后源码会被拉取到Release的默认工作目录下。
  2. 显式指定脚本的工作目录或者使用预制环境变量定位源码路径:
    Azure DevOps提供了预制环境变量$(Build.SourcesDirectory)指向拉取到的源码根目录,你可以在bash脚本中先切换到该目录,或者直接用变量拼接文件路径,修改后的脚本参考:
- bash: |
    echo 'Hello world'
    # 先切换到源码根目录
    cd $(Build.SourcesDirectory)
    curl -X POST -H "Authorization: Bearer dapiXXXXXXXX"  -d @conf/dbfs_api.json  https://adb-YYYYYYYY.X.azuredatabricks.net/api/2.0/jobs/create > file.json
  displayName: 'Bash Script'
  1. 如果运行节点是Windows环境,建议将路径分隔符统一换成正斜杠/,或者给路径加上引号避免转义问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:54:04