Terraform-provider-aws: Agregue soporte para 'redireccionamiento' y 'respuesta fija' en el tipo de acción lb_listener_rule

Creado en 26 jul. 2018  ·  12Comentarios  ·  Fuente: hashicorp/terraform-provider-aws

Nota de la comunidad

  • Vote sobre este problema agregando una 👍 reacción al problema original para ayudar a la comunidad y a los mantenedores a priorizar esta solicitud.
  • No deje comentarios "+1" o "yo también", ya que generan ruido adicional para los seguidores del problema y no ayudan a priorizar la solicitud.
  • Si está interesado en trabajar en este problema o ha enviado una solicitud de extracción, deje un comentario.

Descripción

AWS agregó soporte para ELB Redirects, que es muy útil para hacer una experiencia lista para usar para redirecciones de HTTP a HTTPS sin usar una instancia EC2 con un servidor HTTP escuchando allí.

Sería genial si pudiera agregar el soporte para esta función.

Recurso(s) nuevo(s) o afectado(s)

  • aws_lb_listener_rule

Configuración potencial de 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
  }
}

Referencias

Anuncio oficial: https://aws.amazon.com/about-aws/whats-new/2018/07/elastic-load-balancing-announces-support-for-redirects-and-fixed-responses-for-application-load -balancín/

Documentación:

enhancement servicelbv2

Comentario más útil

El soporte para las acciones fixed-response y redirect se fusionó con el maestro a través de #5430 y se lanzará con la versión 1.33.0 del proveedor de AWS, más adelante esta semana. 🚀

Todos 12 comentarios

Estoy interesado en trabajar en esta función.

El recurso aws_lb_listener también se vería afectado.

En cuanto a la configuración potencial de Terraform, propongo lo siguiente:

redirigir

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"
  }
}

Respuesta fija

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"
  }
}

La configuración para aws_lb_listener_rule sería similar.

Precaución: configurar este tipo de reglas fuera de Terraform hará que el proveedor de AWS se bloquee en todas las versiones hasta la última (versión 1.29.0 al momento de escribir este artículo): #5357

Enviaré una solicitud de incorporación de cambios hoy para evitar este tipo de fallas en todos los recursos de ALB/NLB y probablemente deberíamos esperar esas correcciones antes de agregar esta función.

Solicitud de extracción de prevención de accidentes enviada: #5367

La solución de bloqueo se ha fusionado con el maestro, por lo que debería estar bien trabajar con el código para esto además de esos cambios. 👍

Ahora tenemos 3 tipos diferentes de acciones: "respuesta fija", "reenviar" y "redireccionar", cada una con diferentes conjuntos de parámetros.

¿Sería mejor si la configuración de acción para el tipo de acción seleccionado se agrupara en un bloque en lugar de aplanarlos en el nivel superior?

Ejemplos:

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"
    }
  }
}

El tipo de datos Acción ahora agrupa la configuración específica del tipo de acción en un objeto anidado, por lo que hacerlo de esta manera sería (casi) una asignación 1:1: https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_Action .html

Además, me di cuenta de que status_code para la acción de redirección tiene el prefijo HTTP_ mientras que para la acción de respuesta fija no lo es:

Si esta configuración status_code fuera a ser compartida, debemos hacer algún tipo de validación dependiendo del tipo de acción, o hacer algún tipo de traducción de valor en el proveedor de Terraform.

Recomendamos seguir la estructura del SDK en la mayoría de los casos, por lo que en este caso serían apropiados bloques separados. Esto nos permite agregar fácilmente la validación de argumentos y simplificar el código.

Dado que el alcance de esto incluye fixed-response , ¿podemos actualizar el título? Estaba interesado en eso específicamente y me tomó un poco encontrar este problema y vi que ya se estaba trabajando. Gracias.

Además, no vi nada sobre agregar encabezados en los enlaces API anteriores, por lo que no tengo claro cómo configuraría algo como un encabezado HSTS en una respuesta, porque el ALB en modo de avance deja eso en el respaldo. aplicación

¿Hay algún plan para agregar autenticación también?

Las solicitudes de funciones de autenticación de @sklemmer se pueden encontrar en #4707 y #4711 😄

Espero revisar la solicitud de extracción abierta de fixed-response / redirect (#5430) en algún momento de esta semana.

El soporte para las acciones fixed-response y redirect se fusionó con el maestro a través de #5430 y se lanzará con la versión 1.33.0 del proveedor de AWS, más adelante esta semana. 🚀

Este ha sido liberado en la versión 1.33.0 del proveedor de AWS . Consulte la documentación de Terraform sobre la versión del proveedor o comuníquese si necesita ayuda para actualizar.

Voy a bloquear este tema porque ha estado cerrado por _30 días_ ⏳. Esto ayuda a nuestros mantenedores a encontrar y concentrarse en los problemas activos.

Si cree que este problema debe reabrirse, lo alentamos a crear un nuevo problema que se vincule a este para agregar contexto. ¡Gracias!

¿Fue útil esta página
0 / 5 - 0 calificaciones