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

如何通过Terraform将Azure负载均衡器从Basic SKU升级至Standard SKU?

将Azure Basic SKU负载均衡器升级为Standard SKU的Terraform代码修改方案

问题描述

Azure门户提示:负载均衡器使用的Basic SKU将于2025年9月30日停用,需升级至Standard SKU,以下是当前的Terraform代码:

resource "azurerm_lb" "foo" {
  name = "foo-${var.URL_NAME}"

  frontend_ip_configuration {
    name                 = "PublicIPAddress"
    public_ip_address_id = azurerm_public_ip.foo_lb_ip.id
  }

   location            = var.AZURE_REGION
  resource_group_name = data.azurerm_resource_group.foo.name
}

resource "azurerm_lb_backend_address_pool" "foo" {
  name            = "BackEndAddressPool"
  loadbalancer_id = azurerm_lb.foo.id
}

resource "azurerm_network_interface_backend_address_pool_association" "foo" {
  count                   = var.NUMBER_OF_VMS
  backend_address_pool_id = azurerm_lb_backend_address_pool.foo.id
  ip_configuration_name   = "internal"
  network_interface_id    = azurerm_network_interface.foo[count.index].id
}

resource "azurerm_lb_probe" "foo" {
  name            = "foo-${var.URL_NAME}"
  protocol        = "Tcp"
  port            = 9999
  loadbalancer_id = azurerm_lb.foo.id
}

resource "azurerm_lb_rule" "foo" {
  name                           = "foo-${var.URL_NAME}"
  protocol                       = "Tcp"
  frontend_port                  = 9999
  backend_port                   = 9999
  frontend_ip_configuration_name = azurerm_lb.foo.frontend_ip_configuration[0].name
  loadbalancer_id                = azurerm_lb.foo.id
  backend_address_pool_ids       = [azurerm_lb_backend_address_pool.foo.id]
}

resource "azurerm_public_ip" "foo_lb_ip" {
  name                = "foo-lb-ip"
  allocation_method   = "Dynamic"
  location            = var.AZURE_REGION
  resource_group_name = data.azurerm_resource_group.foo.name
}

修改步骤

要升级至Standard SKU,需要对代码做以下关键修改:

  1. 为负载均衡器指定Standard SKU
    在azurerm_lb资源中添加sku = "Standard"配置项:
resource "azurerm_lb" "foo" {
  name = "foo-${var.URL_NAME}"
  sku  = "Standard" # 指定Standard SKU

  frontend_ip_configuration {
    name                 = "PublicIPAddress"
    public_ip_address_id = azurerm_public_ip.foo_lb_ip.id
  }

  location            = var.AZURE_REGION
  resource_group_name = data.azurerm_resource_group.foo.name
}
  1. 将公共IP升级为Standard SKU
    Standard负载均衡器要求配套的公共IP也必须是Standard SKU,因此修改azurerm_public_ip资源:
resource "azurerm_public_ip" "foo_lb_ip" {
  name                = "foo-lb-ip"
  allocation_method   = "Dynamic"
  sku                 = "Standard" # 指定Standard SKU
  location            = var.AZURE_REGION
  resource_group_name = data.azurerm_resource_group.foo.name
}
  1. 验证其他资源兼容性
    现有后端地址池、网卡关联、探针和规则配置均兼容Standard SKU,无需额外修改,但需注意:
  • Standard LB支持HA端口、出站规则等高级特性,可根据业务需求扩展配置
  • 执行terraform plan预览变更,确认资源替换逻辑无误后,再执行terraform apply完成升级

注意事项

  • 升级前确认所有关联资源(VM、网卡等)状态正常
  • 建议备份当前Terraform状态文件,避免变更风险
  • Standard SKU负载均衡器计费模式与Basic不同,需提前确认成本影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 06:22:40