Terraform, не может создать правило ALB с многозначным правилом шаблона пути - PullRequest
0 голосов
/ 07 мая 2019

Как показано на скриншоте, правила AWS ALB допускают несколько условий совпадения в правиле пути:

enter image description here

Как я могу выполнить ту же самую вещь в 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 правило на маршрут.

...