【问题标题】:How to add a backend with virtual machine IP for Azure Load Balancer in Terraform如何在 Terraform 中为 Azure 负载均衡器添加带有虚拟机 IP 的后端
【发布时间】:2021-07-10 10:31:17
【问题描述】:

我正在创建一个 Azure 负载均衡器,我需要将传入流量路由到由虚拟机组成的后端池。

我正在使用 Terraform 来执行此操作。

到目前为止,我已经创建了以下内容:

  1. 负载平衡器
  2. 负载平衡器规则
  3. 后端地址池
  4. 健康探测

但是在后端的terraform 中,我无法设置VM 的IP 地址。

这是我的代码。我该怎么做?

resource "azurerm_lb" "example" {
  name                = "TestLoadBalancer"
  resource_group_name = azurerm_resource_group.example.name
  location            = azurerm_resource_group.example.location
  sku                 = "Standard"

  frontend_ip_configuration {
    name                          = "classiclb"
    subnet_id                     = azurerm_subnet.vm.id
    private_ip_address_allocation = "Dynamic"
  }
}

resource "azurerm_lb_backend_address_pool" "example" {
  loadbalancer_id = azurerm_lb.example.id
  name            = "classiclb"
}

resource "azurerm_lb_probe" "example" {
  resource_group_name = azurerm_resource_group.example.name
  loadbalancer_id     = azurerm_lb.example.id
  name                = "classiclb"
  port                = 80
  interval_in_seconds = 10
  number_of_probes    = 3
  protocol            = "Http"
  request_path        = "/"
}

resource "azurerm_lb_rule" "example" {
  resource_group_name            = azurerm_resource_group.example.name
  loadbalancer_id                = azurerm_lb.example.id
  name                           = "classiclb"
  protocol                       = "Tcp"
  frontend_port                  = 80
  backend_port                   = 80
  frontend_ip_configuration_name = "classiclb"
  backend_address_pool_id        = azurerm_lb_backend_address_pool.example.id
  probe_id                       = azurerm_lb_probe.example.id
}

【问题讨论】:

  • 你不需要使用azurerm_lb_backend_address_pool_address吗?
  • 嘿,正是我想要的。谢谢!
  • 嘿,我得到了错误:Invalid resource type │ │ on 12-lb.tf line 43, in resource "azurerm_lb_backend_address_pool_address" "example": │ 43: resource "azurerm_lb_backend_address_pool_address" "example" { │ │ The provider hashicorp/azurerm does not support resource type "azurerm_lb_backend_address_pool_address".
  • 这似乎是一个新问题,也许您使用的是旧版本的提供程序?如果您不介意,我将为您的原始问题提供答案。

标签: azure terraform azure-load-balancer


【解决方案1】:

基于 cmets,使用azurerm_lb_backend_address_pool_address 添加地址。

【讨论】:

  • 嗨,我收到了错误The provider hashicorp/azurerm does not support resource type │ "azurerm_lb_backend_address_pool_address".
  • 通过将提供程序升级到最新版本 (2.67.0) 解决了这个问题。谢谢!
  • 您是如何找到此资源的?我到处搜索,但找不到。
  • @JananathBanuka 它在 azurem 文档中列出。也许你也看看旧版本的文档?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多