Resource: aws_lb_listener#
Manages a listener for a load balancer. For details about listeners, see the user documentation.
Example Usage#
resource "aws_vpc" "example" {
  cidr_block = "10.1.0.0/16"
  tags = {
    Name = "tf-vpc"
  }
}
resource "aws_subnet" "example" {
  vpc_id     = aws_vpc.example.id
  cidr_block = "10.1.1.0/24"
  tags = {
    Name = "tf-subnet"
  }
}
resource "aws_lb" "example" {
  name               = "tf-lb"
  internal           = true
  load_balancer_type = "application"
  subnets            = [aws_subnet.example.id]
  tags = {
    Name = "tf-lb"
  }
}
resource "aws_lb_target_group" "example" {
  name = "tf-lb-tg"
  target_type = "instance"
  port        = 1234
  protocol    = "HTTP"
  vpc_id      = aws_vpc.example.id
  tags = {
    Name = "tf-lb-tg"
  }
}
resource "aws_lb_listener" "example" {
  load_balancer_arn = aws_lb.example.arn
  port     = 4321
  protocol = "HTTP"
  default_action {
    type = "forward"
    forward {
      target_group {
        arn = aws_lb_target_group.example.arn
      }
    }
  }
  tags = {
    Name = "tf-lb-listener"
  }
}
Argument Reference#
- default_action- (Required, Editable) The default action that will be applied to incoming requests. The structure of this block is described below.
- load_balancer_arn- (Required) The Amazon Resource Name (ARN) of the load balancer.- ARN Format: arn:c2:elasticloadbalancing::<project-name>@<customer-name>:loadbalancer/<app|net>/lb-12345678
 
- ARN Format: 
- port- (Required, Editable) The port on which the listener will receive requests.- Valid values: From 1 to 65535
 
- protocol- (Required, Editable) The protocol for a client connection to the load balancer.- Valid values:- For network load balancers: TCP,UDP
- For application load balancers: HTTP,HTTPS
 
- For network load balancers: 
 
- Valid values:
- certificate_arn- (Optional, Editable) The ARN of the IAM server certificate.- ARN Format: arn:c2:iam::<customer-name>:certificate/<certificate-name>
- Constraints: certificate_arnis required ifprotocolisHTTPS
 
- ARN Format: 
- tags- (Optional, Editable) Map of tags to assign to the listener. If a provider- default_tagsconfiguration block is used, tags with matching keys will overwrite those defined at the provider level.
default_action#
The default_action block has the following structure:
- type- (Required, Editable) The type of the routing action.- Valid values: forward
 
- Valid values: 
- forward- (Optional, Editable) The block with information about forwarding requests to target groups. The structure of this block is described below.- Constraints: forwardcan be specified only iftypeisforwardandtarget_group_arnis not specified
 
- Constraints: 
- order- (Optional, Editable) The sequential number of the action.- Valid values: From 1 to 50000
 
- target_group_arn- (Optional, Editable, Deprecated) The ARN of the target group to forward traffic to.- ARN Format: arn:c2:elasticloadbalancing::<project-name>@<customer-name>:targetgroup/tg-12345678
- Constraints: target_group_arncan be specified only iftypeisforwardand theforwardblock is not specified
 
- ARN Format: 
~> Note The argument target_group_arn is marked as deprecated. Use the forward block instead.
forward#
The forward block has the following structure:
- target_group- (Required, Editable) List of target groups to forward traffic to. The structure of this block is described below.- List size: From 1 to 5 elements
 
target_group#
The target_group block has the following structure:
- arn- (Required, Editable) The ARN of the target group to forward traffic to.- ARN Format: arn:c2:elasticloadbalancing::<project-name>@<customer-name>:targetgroup/tg-12345678
 
- ARN Format: 
- weight- (Optional, Editable) The weight of the target group.- Valid values: From 0 to 256
- Default value: 1
 
Attribute Reference#
Supported attributes#
In addition to all arguments above, the following attributes are exported:
- arn- The ARN of the listener.
- id- The ARN of the listener.
- tags_all- Map of tags assigned to the listener, including those inherited from the provider- default_tagsconfiguration block.
Unsupported attributes#
~> Note These attributes may be present in the terraform.tfstate file, but they have preset values and cannot be specified in configuration files.
The following attributes are not currently supported:
alpn_policy, default_action.authenticate_cognito, default_action.authenticate_oidc, default_action.fixed_response, default_action.redirect, forward.stickiness, ssl_policy.
Import#
The listener can be imported using arn, e.g.,
$ terraform import aws_lb_listener.example arn:c2:elasticloadbalancing::project-name@customer-name:listener/app/lb-12345678/li-12345678