1
1
locals {
2
- aws_ecs_container_port = [for n in split (" ," , var. aws_ecs_container_port ) : tonumber (n)]
2
+ aws_ecs_container_port = var . aws_ecs_container_port != " " ? [for n in split (" ," , var. aws_ecs_container_port ) : tonumber (n)] : var . aws_ecs_task_ignore_definition ? [ 80 ] : [ ]
3
3
aws_ecs_sg_container_port = distinct (local. aws_ecs_container_port )
4
4
aws_ecs_lb_port = var. aws_ecs_lb_port != " " ? [for n in split (" ," , var. aws_ecs_lb_port ) : tonumber (n)] : local. aws_ecs_container_port
5
5
aws_ecs_sg_lb_port = distinct (local. aws_ecs_lb_port )
@@ -36,6 +36,7 @@ resource "aws_security_group_rule" "incoming_alb" {
36
36
# ## ALB --- Make this optional -- Using ALB name intentionally. (To make clear is an A LB)
37
37
38
38
resource "aws_alb" "ecs_lb" {
39
+ count = length (local. aws_ecs_sg_container_port ) > 1 ? 1 : 0
39
40
name = var. aws_resource_identifier_supershort
40
41
subnets = var. aws_selected_subnets
41
42
security_groups = [aws_security_group . ecs_lb_sg . id ]
@@ -46,8 +47,9 @@ resource "aws_alb" "ecs_lb" {
46
47
}
47
48
48
49
data "aws_alb" "selected_lb" {
49
- name = var. aws_resource_identifier_supershort
50
- depends_on = [ aws_alb . ecs_lb ]
50
+ count = length (local. aws_ecs_sg_container_port )
51
+ name = var. aws_resource_identifier_supershort
52
+ depends_on = [aws_alb . ecs_lb ]
51
53
}
52
54
53
55
resource "aws_alb_target_group" "lb_targets" {
@@ -74,7 +76,7 @@ resource "null_resource" "http_redirect_dep" {
74
76
75
77
resource "aws_alb_listener" "lb_listener_ssl" {
76
78
count = var. aws_certificate_enabled ? length (local. aws_ecs_lb_port ) : 0
77
- load_balancer_arn = aws_alb. ecs_lb . id
79
+ load_balancer_arn = aws_alb. ecs_lb [ 0 ] . id
78
80
port = local. aws_ecs_lb_port [count . index ]
79
81
# https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html
80
82
ssl_policy = var. aws_ecs_lb_ssl_policy
@@ -92,7 +94,7 @@ resource "aws_alb_listener" "lb_listener_ssl" {
92
94
93
95
resource "aws_alb_listener" "lb_listener" {
94
96
count = var. aws_certificate_enabled ? 0 : length (local. aws_ecs_lb_port )
95
- load_balancer_arn = aws_alb. ecs_lb . id
97
+ load_balancer_arn = aws_alb. ecs_lb [ 0 ] . id
96
98
port = local. aws_ecs_lb_port [count . index ]
97
99
protocol = " HTTP"
98
100
default_action {
@@ -123,7 +125,7 @@ resource "aws_alb_listener_rule" "redirect_based_on_path" {
123
125
124
126
resource "aws_alb_listener" "http_redirect" {
125
127
count = var. aws_ecs_lb_redirect_enable && ! contains (local. aws_ecs_lb_port ,80 ) ? 1 : 0
126
- load_balancer_arn = aws_alb. ecs_lb . id
128
+ load_balancer_arn = aws_alb. ecs_lb [ 0 ] . id
127
129
port = " 80"
128
130
protocol = " HTTP"
129
131
@@ -161,7 +163,7 @@ resource "aws_alb_listener" "https_redirect" {
161
163
count = var. aws_ecs_lb_redirect_enable && ! contains (local. aws_ecs_lb_port ,443 ) && var. aws_certificate_enabled ? 1 : 0
162
164
# count = var.aws_ecs_lb_redirect_enable && !contains(local.aws_ecs_lb_port,443) ? var.aws_certificates_selected_arn != "" ? 1 : 0 : 0
163
165
# count = var.aws_ecs_lb_redirect_enable && var.aws_certificates_selected_arn != "" && !contains(local.aws_ecs_lb_port,443) ? 1 : 0
164
- load_balancer_arn = " ${ aws_alb . ecs_lb . id } "
166
+ load_balancer_arn = " ${ aws_alb . ecs_lb [ 0 ] . id } "
165
167
port = " 443"
166
168
protocol = " HTTPS"
167
169
certificate_arn = var. aws_certificates_selected_arn
@@ -226,30 +228,30 @@ resource "aws_security_group_rule" "incoming_ecs_lb_ports" {
226
228
}
227
229
228
230
output "load_balancer_dns" {
229
- value = aws_alb. ecs_lb . dns_name
231
+ value = length (local . aws_ecs_sg_container_port ) > 1 ? aws_alb. ecs_lb [ 0 ] . dns_name : " "
230
232
}
231
233
232
234
output "load_balancer_port" {
233
- value = var. aws_certificate_enabled ? aws_alb_listener. lb_listener_ssl [0 ]. port : aws_alb_listener. lb_listener [0 ]. port
235
+ value = length (local . aws_ecs_sg_container_port ) > 1 ? ( var. aws_certificate_enabled ? aws_alb_listener. lb_listener_ssl [0 ]. port : aws_alb_listener. lb_listener [0 ]. port ) : " "
234
236
}
235
237
236
238
output "load_balancer_protocol" {
237
- value = var. aws_certificate_enabled ? aws_alb_listener. lb_listener_ssl [0 ]. protocol : aws_alb_listener. lb_listener [0 ]. protocol
239
+ value = length (local . aws_ecs_sg_container_port ) > 1 ? ( var. aws_certificate_enabled ? aws_alb_listener. lb_listener_ssl [0 ]. protocol : aws_alb_listener. lb_listener [0 ]. protocol ) : " "
238
240
}
239
241
240
242
output "load_balancer_zone_id" {
241
- # value = aws_alb.ecs_lb.zone_id
242
- value = data. aws_alb . selected_lb . zone_id
243
+ # value = aws_alb.ecs_lb[0] .zone_id
244
+ value = length (local . aws_ecs_sg_container_port ) > 1 ? data. aws_alb . selected_lb [ 0 ] . zone_id : " "
243
245
}
244
246
245
247
output "load_balancer_arn" {
246
- value = aws_alb. ecs_lb . arn
248
+ value = length (local . aws_ecs_sg_container_port ) > 1 ? aws_alb. ecs_lb [ 0 ] . arn : " "
247
249
}
248
250
249
251
output "ecs_sg_id" {
250
252
value = aws_security_group. ecs_sg . id
251
253
}
252
254
253
255
output "ecs_lb_sg_id" {
254
- value = aws_security_group. ecs_lb_sg . id
256
+ value = length (local . aws_ecs_sg_container_port ) > 1 ? aws_security_group. ecs_lb_sg . id : " "
255
257
}
0 commit comments