是否可以使用Terraform向现有的Azure应用程序网关添加新的侦听器,后端地址池并请求路由规则?

时间:2019-12-19 00:55:58

标签: terraform azure-application-gateway

我的用例是位于单个应用程序网关后面的多个具有不同生命周期的AppService应用程序。每当我添加新应用程序时,我都想添加一个新的侦听器,新的多站点路由规则和一个新的后端池,而无需拆除并重新创建网关。

最初,我的计划是为共享基础结构提供一个Terraform配置,该配置创建一个框架应用网关,然后具有单独的针对特定应用的Terraform配置,以为每个应用向该网关添加侦听器,后端地址池和路由规则。不过,用TF似乎不可能完成。

我可以使用Azure CLI或门户将侦听器,路由规则和后端池清楚地添加到现有网关。有没有办法用Terraform做到这一点?

1 个答案:

答案 0 :(得分:0)

这是Terraform的reference doc,用于管理Azure应用程序网关。 您可以参考此示例代码,将新的侦听器,路由规则以及后端池添加到现有的应用程序网关。该模板包含所有必需的参数,例如

http_listener-(必需)一个或多个http_listener块。

http_listener {
    name                           = "https-listener-1"
    frontend_ip_configuration_name = "feip"    
    frontend_port_name             = "http-port"
    protocol                       = "Http"
}

request_routing_rule-(必需)一个或多个request_routing_rule块。

  request_routing_rule {
    name                       = "${local.request_routing_rule_name}"
    rule_type                  = "Basic"
    http_listener_name         = "${local.listener_name}"
    backend_address_pool_name  = "${local.backend_address_pool_name}"
    backend_http_settings_name = "${local.http_setting_name}"
  }
}

backend_address_pool-(必需)一个或多个如下定义的backend_address_pool块。

  backend_address_pool {
    name = "${local.backend_address_pool_name}"
  }