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

Terraform 0.14.0+azurerm2.65.0升级后应用网关SSL证书配置报错解决

问题根因

你遇到的所有报错均由lifecycle块的ignore_changes规则写法不兼容新版本Terraform和azurerm provider导致:

  • Terraform 0.14+对嵌套块的忽略规则解析逻辑发生变更,直接写ignore_changes = [ssl_certificate]会被误判为你主动设置了ssl_certificate块内的只读计算属性(id、public_cert_data),触发Computed attributes cannot be set报错。
  • azurerm 2.65.0版本中ssl_certificate块的参数校验逻辑要求data+password和key_vault_secret_id二选一,错误的忽略规则打乱了参数校验流程,导致系统误判你未配置任何证书来源参数,触发key_vault_secret_id为空的报错。
解决步骤
  1. 修改lifecycle忽略规则
    不要直接忽略整个ssl_certificate块,仅指定需要忽略变更的具体属性即可。如果你的需求是避免本地证书文件变更覆盖云端已配置的证书,修改后的lifecycle块如下:
lifecycle {
  ignore_changes = [
    ssl_certificate[0].data,
    ssl_certificate[0].password,
    http_listener
  ] 
}

如果你需要忽略所有ssl_certificate块的全部变更,适配Terraform 0.14+的正确写法为:

lifecycle {
  ignore_changes = [
    ssl_certificate[*],
    http_listener
  ] 
}
  1. 清理缓存并重新验证
    执行以下命令清理旧的Terraform缓存,重新初始化后验证配置:
# 清理本地缓存
rm -rf .terraform .terraform.lock.hcl
# 重新初始化provider
terraform init
# 验证配置是否正常
terraform plan
  1. (可选)状态对齐
    如果修改后仍有报错,临时注释掉整个lifecycle块,执行一次terraform apply将当前配置与云端状态对齐,之后再加回修改后的lifecycle规则即可。
补充说明

你当前的ssl_certificate块配置(使用data+password上传本地pfx证书)完全符合azurerm 2.65.0的要求,不需要额外添加key_vault_secret_id参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:27:03