使用Terraform部署Azure资源时如何解决azurerm插件报错问题
故障根因
该报错是老旧版本的azurerm v2 provider在Windows环境下解析Azure CLI生成的身份凭证时,对非UTF-8编码的字符兼容不足导致的。
解决方案
- 优先升级azurerm provider版本:
你当前使用的v2.74.0是已停止维护的旧版本,将terraform块中的provider版本约束调整为3.x以上即可修复编码兼容问题:
terraform { required_providers { azurerm = { source = "hashicorp/azurerm" version = ">=3.0.0" } } } provider "azurerm" { features {} }
修改完成后执行terraform init -upgrade拉取新版provider,再重新运行terraform plan即可。
- 若升级后仍有报错,重置本地Azure认证信息:
在PowerShell中依次执行以下操作:
- 执行
az logout退出当前Azure账号登录 - 删除本地用户目录下的
.azure文件夹(默认路径为C:\Users\你的用户名\.azure) - 执行
az login重新完成身份认证
- 检查TF配置文件编码:
确认你的nsg.tf文件保存格式为UTF-8,若为GBK等其他编码,另存为UTF-8格式后重新执行命令即可。
你之前修改provider source为完整链接的操作是错误的,azurerm的source固定为hashicorp/azurerm,不需要填写完整Registry地址,否则会触发provider拉取错误。
内容的提问来源于stack exchange,提问作者Mick8695
相关产品推荐
相关产品推荐

