Terraform AzureRM路由表BGP传播配置报错求助
解决Terraform AzureRM路由表BGP传播设置报错问题
错误原因
你使用的AzureRM provider 3.103.1版本中,bgp_route_propagation_enabled已不再是azurerm_route_table资源的直接参数。从AzureRM 3.0+版本开始,BGP路由传播的控制逻辑被移到子网与路由表的关联资源中,而非路由表本身定义。
解决方案
- 移除
azurerm_route_table资源里的bgp_route_propagation_enabled = false配置行 - 通过
azurerm_subnet_route_table_association资源禁用BGP路由传播,对应参数为disable_bgp_route_propagation = true(该参数设为true即表示禁用BGP路由传播)
修改后的代码示例
路由表资源(已移除无效参数)
resource "azurerm_route_table" "rt" { name = "test-resource" location = var.location resource_group_name = var.resource_group_name dynamic "route" { for_each = var.route-internet content { name = route.value["name"] address_prefix = route.value["address_prefix"] next_hop_type = route.value["next_hop"] next_hop_in_ip_address = route.value["ip"] } } }
子网与路由表关联资源(禁用BGP传播)
resource "azurerm_subnet_route_table_association" "rt_assoc" { subnet_id = azurerm_subnet.your_subnet.id # 替换为你的子网ID route_table_id = azurerm_route_table.rt.id disable_bgp_route_propagation = true # 禁用BGP路由传播 }
说明
disable_bgp_route_propagation参数的逻辑是:设为true时,子网不会从BGP学习路由(即禁用传播),完全匹配你原本想要设置bgp_route_propagation_enabled = false的需求。
内容的提问来源于stack exchange,提问作者Matty
相关产品推荐
相关产品推荐

