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

Terraform创建ExpressRoute虚拟网关连接报ID缺失元素错误

问题根因

该问题为配置参数误用,不属于Azure平台或Terraform Azurerm提供商的Bug:

  • azurerm_virtual_network_gateway_connection资源的peer_virtual_network_gateway_id参数仅适用于type = "Vnet2Vnet"的跨虚拟网络网关连接场景,要求传入值必须是对端虚拟网络网关的资源ID,ID路径固定包含virtualNetworkGateways字段。
  • 当前配置为ExpressRoute类型连接,错误将ExpressRoute线路的资源ID传入了上述虚拟网关专用参数。Terraform在apply阶段会校验传入ID的路径结构,找不到要求的virtualNetworkGateways片段时直接抛出对应错误。
  • terraform plan阶段仅校验参数值的基础类型(如字符串、数字),不会校验ID对应的资源类型与路径合法性,因此不会提前报错;Azure Portal操作时会根据选择的连接类型自动隐藏不匹配的配置项、绑定正确的参数逻辑,因此可以正常完成部署。
修复方案

调整资源配置参数即可:

  1. 删除配置中错误的peer_virtual_network_gateway_id参数行
  2. 新增ExpressRoute连接专用的express_route_circuit_id参数,传入ExpressRoute线路的资源ID

修正后的核心代码片段:

resource "azurerm_virtual_network_gateway_connection" "express_route_circuit_connection" {
  name                = "az-prd-euw-expressrouteconn-001"
  location            = azurerm_resource_group.resource_group.location
  resource_group_name = azurerm_resource_group.resource_group.name

  type                       = "ExpressRoute"
  virtual_network_gateway_id = azurerm_virtual_network_gateway.disaster_recovery_virtual_network_gateway.id
  express_route_circuit_id   = data.azurerm_express_route_circuit.express_route_circuit.id
  authorization_key          = azurerm_express_route_circuit_authorization.marel-disasterrecovery.authorization_key
  routing_weight             = 1
}

调整完成后重新执行terraform plan确认参数映射无误,再执行apply即可正常完成部署。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 00:32:23