Как показано на скриншоте, правила AWS ALB допускают несколько условий совпадения в правиле пути:
Как я могу выполнить ту же самую вещь в Terraform?
Когда я пытаюсь создать это условие в Terraform:
resource "aws_lb_listener_rule" "test" {
listener_arn = "<<arn_scrubbed>>"
priority = 25
action {
type = "forward"
target_group_arn = "${aws_lb_target_group.mytarget.arn}"
}
condition {
field = "path-pattern"
values = ["/account.php", "/client*"]
}
condition {
field = "host-header"
values = ["dev01site.example.com"]
}
}
Terraform выдаст ошибку: attribute supports 1 item maximum, config has 2 declared
Если попытаться сделать так:
resource "aws_lb_listener_rule" "test" {
listener_arn = "<<arn_scrubbed>>"
priority = 25
action {
type = "forward"
target_group_arn = "${aws_lb_target_group.mytarget.arn}"
}
condition {
field = "path-pattern"
values = ["/account.php"]
}
condition {
field = "path-pattern"
values = ["/client*"]
}
condition {
field = "host-header"
values = ["dev01site.example.com"]
}
}
В этом случае выдает A rule can only have one 'path-pattern' condition
Невозможно выполнить (с Terraform) эти действия, которые разрешены Консолью AWS, или у меня просто неверный синтаксис?
ПРИМЕЧАНИЕ. Если вам интересно - я хочу объединить правила из-за ограничения в 100 правил для ALB. Попытка получить ценность своих денег, используя 1 ALB для нескольких сред разработки, используя правило комбинации хост / путь. Каждый требует несколько правил пути для маршрутизации услуг. Вот почему я объединяю несколько путей для каждого правила. Это сэкономит моей компании пару сотен долларов в месяц, если мне не придется составлять 1 правило на маршрут.