【问题标题】:Terraform private azure load balancer issueTerraform 私有天蓝色负载均衡器问题
【发布时间】:2019-11-25 19:06:41
【问题描述】:

我正在尝试使用私有负载均衡器部署基础架构:

.....
resource "azurerm_lb" "private" {
name                = "${var.name}-${var.live}-private-lb"
location            = data.azurerm_resource_group.rg.location
resource_group_name = data.azurerm_resource_group.rg.name
sku                 = var.sku

frontend_ip_configuration {
  name                          = "frontend"
  subnet_id                     = var.subnet_id != "" ? var.subnet_id : null
  private_ip_address            = (var.subnet_id != "" && var.private_ip != "") ? var.private_ip : null
  private_ip_address_allocation = var.subnet_id != "" ? (var.subnet_id == "" ? "Static" : "Dynamic") : null
 }
}
......

但我收到了错误消息:

..../frontendIPConfigurations/frontend must reference either a Subnet, Public IP Address or Public IP Prefix." Details=[]

为什么以及如何解决这个问题?我不知道缺少哪个配置。 谢谢

【问题讨论】:

    标签: azure terraform infrastructure-as-code


    【解决方案1】:

    内部负载均衡器与公共负载均衡器不同,它已分配给子网并且没有公共 IP 地址。正如错误显示的那样,前端应该引用一个子网、公共 IP 地址或公共 IP 前缀,并且在您引用时子网应该已经存在。您可以使用 data source subnet 访问有关现有资源的信息或为负载均衡器创建子网和 VNet。

    例如,以下对我有用。

    data "azurerm_resource_group" "rg" {
      name     = "mytestrg" 
    }
    
    
    variable "sku" {
      default = "basic"
    }
    
    variable "private_ip" {
      default = "172.19.0.100"
    }
    
    variable "env" {
      default="Static"
    }
    
    data "azurerm_subnet" "test" {
      name                 = "default"
      virtual_network_name = "vnet1"
      resource_group_name  = "${data.azurerm_resource_group.rg.name}"
    }
    
    resource "azurerm_lb" "test" {
      name                = "mytestlb"
      location            = "${data.azurerm_resource_group.rg.location}"
      resource_group_name = "${data.azurerm_resource_group.rg.name}"
      sku                 = "${var.sku}"
    
      frontend_ip_configuration {
        name                          = "frontend"
        subnet_id                     = "${data.azurerm_subnet.test.id}"
        private_ip_address            = "${var.env=="Static"? var.private_ip: null}"
        private_ip_address_allocation = "${var.env=="Static"? "Static": "Dynamic"}"
      }
    }
    

    【讨论】:

    • 你是最棒的。完美答案
    猜你喜欢
    • 2022-11-01
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 2013-08-08
    • 2015-05-22
    • 1970-01-01
    相关资源
    最近更新 更多