如何创建具有特定命名约定的多个目标组地形



我有一个创建目标组的资源。我想修改资源,使其能够使用特定的命名约定创建n个目标组。

resource "aws_lb_target_group" "main" {
name                          = "${var.name}-tg"
port                          = var.forward_port
protocol                      = var.forward_protocol
target_type                   = var.target_type
deregistration_delay          = var.deregistration_delay
health_check {
interval            = var.interval
path                = var.path
}
stickiness {
type            = var.cookie_type
}
} 

我想以这样一种方式修改它,如果只创建了一个目标组,它应该将其命名为test-tg1,但如果有多个目标组的话,它应该像test-tg1一样将索引添加到名称中。此外,每个目标组都可以有自己的一组特定变量值。我怎样才能做到这一点?

在这种情况下,您可以使用for_each来创建具有不同配置的多个TG。创建一个map(object(((类型的变量,它允许您按照期望的方式放置值。我放了一个示例代码。参考以下内容。

请将以下变量的值放在地形.tfvars文件中

cookie_type,路径,注销延迟

变量

variable "TG_conf" {
type = map(object({
port              = string
protocol          = string
target_type       = string
interval          = string
cookie_type       = string
path              = string
deregistration_delay = string
}))
}

地形.tfvars

TG_conf = {
"test-tg" = {
port              = 80
protocol          = HTTP
target_type       = "instance
interval          = "5"
cookie_type       = string
path              = string
deregistration_delay = string
}

alb.tf

resource "aws_lb_target_group" "main" {
for_each = var.TG_conf
name                          = "${each.key}"
port                          = each.value.port
protocol                      = each.value.protocol
target_type                   = each.value.target_type
deregistration_delay          = each.value.deregistration_delay
health_check {
interval            = each.value.interval
path                = each.value.path
}
stickiness {
type            = each.value.cookie_type
}
} 

相关内容

  • 没有找到相关文章

最新更新