azure - Terraform 私有(private) azure 负载均衡器问题

标签 azure terraform infrastructure-as-code

我正在尝试使用私有(private)负载均衡器部署基础设施:

.....
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=[]

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

最佳答案

内部负载均衡器与公共(public)负载均衡器不同,它已分配到子网并且没有公共(public) IP 地址。显示错误时,前端应引用子网、公共(public) IP 地址或公共(public) 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"}"
  }
}

关于azure - Terraform 私有(private) azure 负载均衡器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57067528/

相关文章:

c# - 如何在azure webjob应用程序中读取azure sql db?

azure - 错误 : Failed to get existing workspaces: containers. 客户端#ListBlobs:

amazon-s3 - 将S3静态站点与应用程序负载平衡器一起使用

azure - 动态部署私有(private)端点

amazon-web-services - CDK Diff 始终显示 API 网关部署的更改

azure - Azure Api 管理中的可选参数

用于容器的 Azure Web 应用程序持久存储

azure - 来自内联虚拟网络资源的子网 ID

python - 如何为我的 Lambda 函数创建可重复使用的 CloudFormation 模板?

azure - Pulumi GitHub Action pulumi/actions@v2 : error: It looks like the Pulumi SDK has not been installed. 你运行过npm install 或yarn install 吗?