使用Terraform部署GCP Composer时encryption_config块不支持报错
解决方案
问题根因
- 你当前使用的
~>3.70.0版本稳定版google provider尚未支持encryption_config配置块,该特性在该版本阶段仅在google-beta provider中提供,后续在3.73.0及更高版本的稳定版google provider中才正式加入支持 - 你已经安装了google-beta provider,但没有给Composer资源指定使用beta provider,默认调用的是稳定版google provider
- 额外存在KMS密钥区域不匹配的隐藏问题,会在块报错解决后触发新的部署失败
修复步骤
1. 给Composer资源指定使用google-beta provider
修改composer.tf中的资源声明,新增provider指定即可解决块不支持的报错:
resource "google_composer_environment" "test" { provider = google-beta # 新增这一行 name = "dwh_composer" region = local.default_region # 剩余原有配置保持不变 }
2. 可选方案:升级google provider版本(不想用beta provider可选择)
修改main.tf中的provider版本约束,将google provider的最低版本提升到3.73.0以上,稳定版就原生支持encryption_config块:
google = { source = "hashicorp/google" version = "~> 3.73.0" }
修改后执行terraform init -upgrade拉取对应版本的provider即可生效。
3. 修复KMS密钥区域不匹配问题
你当前的KMS密钥环创建在europe-west4,但Composer环境部署在local.default_region即europe-west1,GCP要求CMEK密钥必须和对应资源处于同一区域,需要修改其中一处的区域配置保持一致:
- 方案A:修改KMS密钥环的location为
local.default_region - 方案B:修改Composer的region为
europe-west4
验证
所有修改完成后执行terraform plan,确认不再报encryption_config块不支持的错误即可继续部署。
内容的提问来源于stack exchange,提问作者vamper1234
相关产品推荐
相关产品推荐

