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

Terraform配置azurerm_private_dns_zone_virtual_network_link标签报错求助

问题原因

你使用的是data "azurerm_private_dns_zone_virtual_network_link",这是Terraform的数据源,作用是读取Azure中已存在的虚拟网络链接资源信息。其中tags是数据源的只读属性,Terraform会自动从现有资源拉取该值,不允许手动配置,这就是报错的核心原因。

解决方案

根据你的实际需求选择对应方案:

场景1:仅读取现有资源信息,无需修改标签

直接移除data块中的tags配置行即可,修改后的代码如下:

data "azurerm_private_dns_zone_virtual_network_link" "public_endpoint" {
  for_each = local.private_endpoints

  name                  = var.private_dns_zones_for_public_endpoint[each.value].virtual_network_link_name
  private_dns_zone_name = var.private_dns_zones_for_public_endpoint[each.value].name
  resource_group_name   = var.private_dns_zones_for_public_endpoint[each.value].resource_group_name
}

后续如果需要引用该资源的标签,可通过data.azurerm_private_dns_zone_virtual_network_link.public_endpoint[each.key].tags获取。

场景2:创建新的虚拟网络链接并设置标签

如果你的需求是创建新资源并配置标签,需要使用resource块替代data块,示例代码如下:

resource "azurerm_private_dns_zone_virtual_network_link" "public_endpoint" {
  for_each = local.private_endpoints

  name                  = var.private_dns_zones_for_public_endpoint[each.value].virtual_network_link_name
  private_dns_zone_name = var.private_dns_zones_for_public_endpoint[each.value].name
  resource_group_name   = var.private_dns_zones_for_public_endpoint[each.value].resource_group_name
  virtual_network_id    = each.value.virtual_network_id # 需补充虚拟网络ID,根据你的变量结构调整
  
  tags = var.private_dns_zone_record_tags
}

注意:resource块必须填写virtual_network_id参数,需根据你的实际变量配置补充该值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 05:42:50