1
1
resource "aws_lambda_permission" "lambda" {
2
- count = var. load_balancer_enabled == true ? 1 : 0
3
- statement_id = " LoadBalancerInvokeAccess"
2
+ count = var. load_balancer_enabled == true ? 1 : 0
3
+ statement_id = " LoadBalancerInvokeAccess"
4
4
function_name = aws_lambda_function. lambda . function_name
5
- action = " lambda:InvokeFunction"
6
- principal = " elasticloadbalancing.amazonaws.com"
5
+ action = " lambda:InvokeFunction"
6
+ principal = " elasticloadbalancing.amazonaws.com"
7
7
}
8
8
9
9
resource "aws_lb" "load_balancer" {
10
- count = var. load_balancer_enabled == true ? 1 : 0
11
- name = local. lambda_name_snake
12
- internal = false
10
+ count = var. load_balancer_enabled == true ? 1 : 0
11
+ name = local. lambda_name_snake
12
+ internal = false
13
13
load_balancer_type = " application"
14
- subnets = var. load_balancer_subnet_ids
15
- security_groups = var. load_balancer_security_group_ids
14
+ subnets = var. load_balancer_subnet_ids
15
+ security_groups = var. load_balancer_security_group_ids
16
16
}
17
17
18
18
resource "aws_route53_record" "load_balancer" {
19
- count = var. load_balancer_enabled == true && var. load_balancer_domain_name_enabled == true ? 1 : 0
19
+ count = var. load_balancer_enabled == true && var. load_balancer_domain_name_enabled == true ? 1 : 0
20
20
zone_id = var. load_balancer_domain_name_hosted_zone_id
21
- name = var. load_balancer_domain_name
22
- type = " A"
21
+ name = var. load_balancer_domain_name
22
+ type = " A"
23
23
alias {
24
- name = aws_lb. load_balancer [0 ]. dns_name
25
- zone_id = aws_lb. load_balancer [0 ]. zone_id
24
+ name = aws_lb. load_balancer [0 ]. dns_name
25
+ zone_id = aws_lb. load_balancer [0 ]. zone_id
26
26
evaluate_target_health = true
27
27
}
28
28
}
29
29
30
30
resource "aws_lb_listener" "load_balancer" {
31
- count = var. load_balancer_enabled == true ? 1 : 0
31
+ count = var. load_balancer_enabled == true ? 1 : 0
32
32
load_balancer_arn = aws_lb. load_balancer [0 ]. arn
33
- port = var. load_balancer_port_public
34
- protocol = var. load_balancer_https_enabled == true ? " HTTPS" : " HTTP"
35
- ssl_policy = var. load_balancer_https_enabled == true ? var. load_balancer_https_ssl_policy : null
36
- certificate_arn = var. load_balancer_https_enabled == true ? var. load_balancer_https_certificate_arn : null
33
+ port = var. load_balancer_port_public
34
+ protocol = var. load_balancer_https_enabled == true ? " HTTPS" : " HTTP"
35
+ ssl_policy = var. load_balancer_https_enabled == true ? var. load_balancer_https_ssl_policy : null
36
+ certificate_arn = var. load_balancer_https_enabled == true ? var. load_balancer_https_certificate_arn : null
37
37
# Setup default action
38
38
default_action {
39
39
type = " fixed-response"
40
40
fixed_response {
41
41
content_type = " text/plain"
42
42
message_body = " The requested resource could not be found"
43
- status_code = " 404"
43
+ status_code = " 404"
44
44
}
45
45
}
46
46
}
@@ -50,33 +50,33 @@ resource "aws_lb_target_group" "load_balancer" {
50
50
depends_on = [
51
51
aws_lambda_permission . lambda
52
52
]
53
- count = var. load_balancer_enabled == true ? 1 : 0
53
+ count = var. load_balancer_enabled == true ? 1 : 0
54
54
target_type = " lambda"
55
- name = aws_lambda_function. lambda . function_name
56
- port = var. load_balancer_port_lambda
57
- protocol = " HTTP"
55
+ name = aws_lambda_function. lambda . function_name
56
+ port = var. load_balancer_port_lambda
57
+ protocol = " HTTP"
58
58
health_check {
59
- enabled = var. load_balancer_health_check_enabled
60
- port = var. load_balancer_enabled == true ? var. load_balancer_port_lambda : null
61
- path = var. load_balancer_enabled == true ? var. load_balancer_health_check_url : null
59
+ enabled = var. load_balancer_health_check_enabled
60
+ port = var. load_balancer_enabled == true ? var. load_balancer_port_lambda : null
61
+ path = var. load_balancer_enabled == true ? var. load_balancer_health_check_url : null
62
62
interval = var. load_balancer_enabled == true ? var. load_balancer_health_check_interval : null
63
63
}
64
64
}
65
65
66
66
# Attach the target group the load balancer
67
67
resource "aws_lb_target_group_attachment" "load_balancer" {
68
- count = var. load_balancer_enabled == true ? 1 : 0
68
+ count = var. load_balancer_enabled == true ? 1 : 0
69
69
target_group_arn = aws_lb_target_group. load_balancer [0 ]. arn
70
- target_id = aws_lambda_function. lambda . arn
70
+ target_id = aws_lambda_function. lambda . arn
71
71
}
72
72
73
73
# Create load balancer listener rule
74
74
resource "aws_lb_listener_rule" "load_balancer" {
75
- count = var. load_balancer_enabled == true ? 1 : 0
75
+ count = var. load_balancer_enabled == true ? 1 : 0
76
76
listener_arn = aws_lb_listener. load_balancer [0 ]. arn
77
- priority = 100
77
+ priority = 100
78
78
action {
79
- type = " forward"
79
+ type = " forward"
80
80
target_group_arn = aws_lb_target_group. load_balancer [0 ]. arn
81
81
}
82
82
condition {
0 commit comments