Terraform配置报错求助:依赖锁文件不一致与Provider找不到问题
问题分析与解决
核心错误:资源类型名称写错
你编写的resource "azure_virtual_network" "main"是错误的,Azure官方Terraform Provider的虚拟网络资源类型应为azurerm_virtual_network(带erm后缀)。Terraform会将未识别的azure_virtual_network资源类型关联到名为azure的Provider,但HashiCorp官方并未提供该Provider,因此会出现找不到registry.terraform.io/hashicorp/azure的错误。次要错误:属性拼写错误
虚拟网络配置中的locatoin是拼写失误,正确属性名应为location。
修正后的代码
terraform { required_providers { azurerm = { source = "hashicorp/azurerm" version = "3.51.0" } } } provider "azurerm" { features{} } resource "azurerm_resource_group" "main"{ name = "learn-tf-rg-switzerlandnorth" location = "switzerlandnorth" } # Create a virtual network resource "azurerm_virtual_network" "main"{ name = "learn-tf-vnet-switzerlandnorth" location = azurerm_resource_group.main.location resource_group_name = azurerm_resource_group.main.name address_space = ["10.0.0.0/16"] }
后续操作步骤
- 执行
terraform init(无需加-upgrade,因为Provider版本未变更) - 运行
terraform plan确认配置无问题 - 执行
terraform apply创建虚拟网络资源
内容的提问来源于stack exchange,提问作者Francesco Mantovani
相关产品推荐
相关产品推荐

