修改Terraform管理的Data Fusion实例版本执行plan时报错如何解决
Data Fusion版本升级Terraform报错修复方案
现有6.4.1版本Data Fusion实例,修改Terraform配置中version属性升级到6.5.0时,执行terraform plan触发如下报错:
| ERROR Get "/v3/namespaces" : unsupported protocol scheme""
所有通过该Terraform代码创建的CDAP资源都会触发该报错,以下是具体修复方案:
问题根因
该报错确实由CDAP Provider未识别Data Fusion实例与下属CDAP资源的依赖关系导致:Data Fusion实例版本变更时会更新实例访问endpoint参数,CDAP Provider在plan阶段还未获取到最新的实例endpoint完整地址,因此拼接出的API请求缺少协议、域名前缀,只有路径部分,触发协议为空的报错。
修复方案
方案1:显式添加
depends_on依赖声明
在所有CDAP资源(如cdap_namespace、cdap_application等)的配置块中,显式声明依赖对应的Data Fusion实例资源,示例配置:resource "cdap_namespace" "example" { provider = cdap name = "test-namespace" # 显式指定依赖Data Fusion实例 depends_on = [google_data_fusion_instance.example] }配置完成后重新执行
terraform plan即可正常生成变更计划。方案2:用target参数分步执行变更
不需要修改现有配置的场景下,可分两步完成变更:- 先单独升级Data Fusion实例:执行
terraform apply -target=google_data_fusion_instance.example,替换示例资源名为实际使用的Data Fusion实例资源名 - 实例升级完成后,再执行全量
terraform plan/terraform apply处理CDAP资源变更,此时实例endpoint已经更新完成,不会再触发报错。
- 先单独升级Data Fusion实例:执行
方案3:升级CDAP Provider到最新稳定版
新版本CDAP Provider已经针对该依赖场景做了兼容优化,升级到≥1.3.0版本的CDAP Provider后,无需额外配置即可自动识别该依赖关系,解决plan报错问题。
内容的提问来源于stack exchange,提问作者FVCC
相关产品推荐
相关产品推荐

