Terraform-provider-aws: Добавить поддержку «перенаправления» и «фиксированного ответа» в тип действия lb_listener_rule.

Созданный на 26 июл. 2018  ·  12Комментарии  ·  Источник: hashicorp/terraform-provider-aws

Примечание сообщества

  • Пожалуйста, проголосуйте за эту проблему, добавив 👍 реакцию на исходную проблему, чтобы помочь сообществу и сопровождающим определить приоритетность этого запроса.
  • Пожалуйста, не оставляйте комментарии «+1» или «я тоже», они создают дополнительный шум для подписчиков проблемы и не помогают определить приоритет запроса.
  • Если вы заинтересованы в работе над этой проблемой или отправили запрос на включение, оставьте комментарий.

Описание

В AWS добавлена ​​поддержка перенаправлений ELB, что очень полезно для готового использования перенаправлений с HTTP на HTTPS без использования экземпляра EC2 с прослушивающим там HTTP-сервером.

Было бы здорово, если бы вы добавили поддержку этой функции.

Новый или затронутый ресурс (ы)

  • aws_lb_listener_rule

Возможная конфигурация Terraform

resource "aws_lb_listener_rule" "static" {
  listener_arn = "${aws_lb_listener.front_end.arn}"
  priority     = 100

  action {
    type = "redirect" # "fixed-response"
    # the rest has to be concepted
  }
}

использованная литература

Официальное объявление: https://aws.amazon.com/about-aws/whats-new/2018/07/elastic-load-balancing-announces-support-for-redirects-and-fixed-responses-for-application-load -балансир/

Документация:

enhancement servicelbv2

Самый полезный комментарий

Поддержка действий fixed-response и redirect была объединена с мастером через #5430 и будет выпущена в версии 1.33.0 поставщика AWS позже на этой неделе. 🚀

Все 12 Комментарий

Мне интересно работать над этой функцией.

Ресурс aws_lb_listener также будет затронут.

Что касается потенциальной конфигурации Terraform, я предлагаю следующее:

перенаправить

resource "aws_lb_listener" "web_port80" {
  load_balancer_arn = "${aws_lb.web_alb.arn}"
  port              = 80
  protocol          = "HTTP"

  default_action {
    type = "redirect"
    host = "#{host}"
    path = "/#{path}"
    port = "#{port}"
    protocol = "#{protocol}"
    query = "#{query}"
    status_code = "301"
  }
}

Фиксированный ответ

resource "aws_lb_listener" "web_port80" {
  load_balancer_arn = "${aws_lb.web_alb.arn}"
  port              = 80
  protocol          = "HTTP"

  default_action {
    type = "fixed-response"
    content_type = "text/plain"
    message_body = "Hello"
    status_code = "200"
  }
}

Конфигурация для aws_lb_listener_rule будет аналогичной.

Внимание: установка этих типов правил вне Terraform приведет к сбою провайдера AWS во всех версиях вплоть до последней (версия 1.29.0 на момент написания этой статьи): #5357

Сегодня я отправлю запрос на вытягивание, чтобы предотвратить этот тип сбоя на всех ресурсах ALB/NLB, и нам, вероятно, следует дождаться этих исправлений, прежде чем добавлять эту функцию.

Отправлен запрос на предотвращение сбоев: № 5367.

Исправление сбоя было объединено с мастером, поэтому можно работать с этим кодом поверх этих изменений. 👍

Теперь у нас есть 3 разных типа действий: «фиксированный ответ», «пересылка» и «перенаправление», каждое с разными наборами параметров.

Было бы лучше, если бы конфигурация действия для выбранного типа действия была сгруппирована в блок, а не сведена на верхнем уровне?

Примеры:

resource "aws_lb_listener_rule" "static" {
  action {
    type = "forward"
    forward {
      target_group_arn = "..."
    }
  }
}
resource "aws_lb_listener_rule" "static" {
  action {
    type = "fixed-response"
    fixed_response {
      content_type = "text/plain"
      message_body = "Hello"
      status_code = "200"
    }
  }
}
resource "aws_lb_listener_rule" "static" {
  action {
    type = "redirect"
    redirect {
      host = "#{host}"
      path = "/#{path}"
      port = "#{port}"
      protocol = "#{protocol}"
      query = "#{query}"
      status_code = "HTTP_301"
    }
  }
}

Тип данных Action теперь группирует конфигурацию, специфичную для типа действия, во вложенном объекте, поэтому такой способ будет (почти) сопоставлением 1:1: https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_Action .

Кроме того, я заметил, что status_code для действия перенаправления имеет префикс HTTP_ , тогда как для действия с фиксированным ответом это не так:

Если эта конфигурация status_code будет использоваться совместно, мы должны выполнить некоторую проверку в зависимости от типа действия или выполнить какое-либо преобразование значений в поставщике Terraform.

Мы рекомендуем в большинстве случаев следовать структуре SDK, поэтому отдельные блоки в этом случае будут уместны. Это позволяет нам легко добавить проверку аргумента, а также упростить код.

Поскольку это включает в себя fixed-response , можем ли мы обновить заголовок? Меня это особенно интересовало, и мне потребовалось немного времени, чтобы найти эту проблему, и я увидел, что над ней уже работают. Спасибо.

Кроме того, я ничего не видел о добавлении заголовков в ссылки API выше, поэтому не ясно, как я мог установить что-то вроде заголовка HSTS в ответе, потому что ALB в прямом режиме оставляет это для поддержки приложение.

Есть ли планы добавить аутентификацию?

Запросы функции @sklemmer для аутентификации можно найти по #4707 и #4711 😄

Я надеюсь просмотреть открытый запрос на вытягивание fixed-response / redirect (#5430) где-то на этой неделе.

Поддержка действий fixed-response и redirect была объединена с мастером через #5430 и будет выпущена в версии 1.33.0 поставщика AWS позже на этой неделе. 🚀

Это было выпущено в версии 1.33.0 поставщика AWS . См. документацию Terraform по управлению версиями провайдера или свяжитесь с нами, если вам нужна помощь в обновлении.

Я собираюсь заблокировать эту проблему, потому что она была закрыта _30 дней_ ⏳. Это помогает нашим специалистам по сопровождению находить активные проблемы и фокусироваться на них.

Если вы считаете, что эту проблему следует открыть повторно, мы рекомендуем создать новую проблему со ссылкой на эту для дополнительного контекста. Спасибо!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги