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

防火墙受限网络中使用DAB部署包的版本匹配问题求助

解决防火墙受限环境下DAB指定Terraform Provider版本失败问题

核心问题排查

  1. 环境变量生效范围问题:在ADO流水线中单独执行export DATABRICKS_TF_PROVIDER_VERSION=1.50.0,仅对当前Bash进程有效。如果databricks bundle deploy是独立任务,变量会丢失,导致DAB仍使用默认要求的v1.71.0。
  2. Terraform未配置本地Provider路径:即使设置了环境变量,DAB底层的Terraform仍会尝试从官方源拉取Provider,封闭网络下无法访问,且未指定本地Provider的查找路径。

具体解决步骤

1. 确保环境变量在ADO流水线中全局生效

  • 方式一:在ADO流水线的变量面板中添加环境变量DATABRICKS_TF_PROVIDER_VERSION,值设为1.50.0,所有任务都会继承该变量。
  • 方式二:在同一个Bash任务中连续执行变量设置和部署命令:
export DATABRICKS_TF_PROVIDER_VERSION=1.50.0
databricks bundle deploy --your-environment

2. 配置DAB强制指定Provider版本

在你的DAB配置文件(如databricks.yml)中,添加Terraform provider的版本锁定配置:

terraform:
  providers:
    databricks:
      source: "databricks/databricks"
      version: "1.50.0"

3. 配置Terraform使用本地Provider镜像

创建或修改Terraform配置文件(~/.terraformrc,流水线执行用户的根目录下),指定本地Provider的存储路径:

provider_installation {
  filesystem_mirror {
    path = "/path/to/local/provider/dir" # 替换为你存放v1.50.0 Provider的目录
    include = ["databricks/databricks"]
  }
  direct {
    exclude = ["databricks/databricks"] # 禁止从官方源拉取
  }
}

注意本地目录结构需符合Terraform规范:

/path/to/local/provider/dir
└── databricks
    └── databricks
        └── 1.50.0
            └── linux_amd64 # 对应流水线代理的操作系统架构
                └── terraform-provider-databricks_v1.50.0

4. 验证Provider加载情况

执行以下命令查看Terraform初始化日志,确认是否成功加载本地v1.50.0 Provider:

databricks bundle debug terraform init

如果日志中显示Using provider from local filesystem mirror,说明配置生效。

5. 适配DAB CLI与Provider版本兼容性

如果上述步骤仍报错,检查当前Databricks CLI版本是否与v1.50.0 Provider兼容。部分新版本CLI强制要求高版本Provider,可降级CLI到适配v1.50.0的版本(比如CLI v0.200.x左右适配Provider v1.50.0)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 00:42:20