2023-08-11 10:11:38 +08:00

77 lines
2.3 KiB
HCL

resource "random_pet" "rg-name" {
prefix = var.resource_group_name_prefix
}
resource "azurerm_resource_group" "rg" {
name = random_pet.rg-name.id
location = var.resource_group_location
}
resource "random_id" "front_door_name" {
byte_length = 8
}
locals {
front_door_name = "afd-${lower(random_id.front_door_name.hex)}"
front_door_frontend_endpoint_name = "frontEndEndpoint"
front_door_load_balancing_settings_name = "loadBalancingSettings"
front_door_health_probe_settings_name = "healthProbeSettings"
front_door_routing_rule_name = "routingRule"
front_door_backend_pool_name = "backendPool"
}
resource "azurerm_frontdoor" "main" {
name = local.front_door_name
resource_group_name = azurerm_resource_group.rg.name
frontend_endpoint {
name = local.front_door_frontend_endpoint_name
host_name = "${local.front_door_name}.azurefd.net"
session_affinity_enabled = false
}
backend_pool_load_balancing {
name = local.front_door_load_balancing_settings_name
sample_size = 4
successful_samples_required = 2
}
backend_pool_health_probe {
name = local.front_door_health_probe_settings_name
path = "/"
protocol = "Http"
interval_in_seconds = 120
}
backend_pool {
name = local.front_door_backend_pool_name
backend {
host_header = var.backend_address
address = var.backend_address
http_port = 80
https_port = 443
weight = 50
priority = 1
}
load_balancing_name = local.front_door_load_balancing_settings_name
health_probe_name = local.front_door_health_probe_settings_name
}
backend_pool_settings {
backend_pools_send_receive_timeout_seconds = 0
enforce_backend_pools_certificate_name_check = false
}
routing_rule {
name = local.front_door_routing_rule_name
accepted_protocols = ["Http", "Https"]
patterns_to_match = ["/*"]
frontend_endpoints = [local.front_door_frontend_endpoint_name]
forwarding_configuration {
forwarding_protocol = "MatchRequest"
backend_pool_name = local.front_door_backend_pool_name
}
}
}