Skip to content

Commit 84a5596

Browse files
authored
Merge pull request #5 from byu-oit/fix-codedeploy
Fix codedeploy
2 parents 81d25b9 + adfec1a commit 84a5596

File tree

5 files changed

+25
-21
lines changed

5 files changed

+25
-21
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ This is done by:
1818
## Usage
1919
```hcl
2020
module "lambda_api" {
21-
source = "github.com/byu-oit/terraform-aws-lambda-api?ref=v0.1.0"
21+
source = "github.com/byu-oit/terraform-aws-lambda-api?ref=v0.2.0"
2222
app_name = "my-lambda"
2323
env = "dev"
2424
codedeploy_service_role_arn = module.acs.power_builder_role.arn

examples/no-codedeploy/example.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ module "acs" {
99

1010
module "lambda_api" {
1111
# source = "../../"
12-
source = "github.com/byu-oit/terraform-aws-lambda-api?ref=v0.1.0"
12+
source = "github.com/byu-oit/terraform-aws-lambda-api?ref=v0.2.0"
1313
app_name = "my-lambda"
1414
env = "dev"
1515
lambda_zip_file = "./src/lambda.zip"

examples/simple-lambda-with-deploy-test/example.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ module "acs" {
99

1010
module "lambda_api" {
1111
# source = "../../"
12-
source = "github.com/byu-oit/terraform-aws-lambda-api?ref=v0.1.0"
12+
source = "github.com/byu-oit/terraform-aws-lambda-api?ref=v0.2.0"
1313
app_name = "my-lambda-codedeploy"
1414
env = "dev"
1515
codedeploy_service_role_arn = module.acs.power_builder_role.arn

main.tf

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ resource "aws_alb_target_group" "tg" {
8080
}
8181

8282
resource "aws_alb_target_group" "tst_tg" {
83+
count = var.use_codedeploy ? 1 : 0
8384
name = "${local.long_name}-tst"
8485
target_type = "lambda"
8586
tags = var.tags
@@ -104,13 +105,14 @@ resource "aws_alb_listener" "https" {
104105
}
105106

106107
resource "aws_alb_listener" "test_https" {
108+
count = var.use_codedeploy ? 1 : 0
107109
load_balancer_arn = aws_alb.alb.arn
108110
port = 4443
109111
protocol = "HTTPS"
110112
certificate_arn = var.https_certificate_arn
111113
default_action {
112114
type = "forward"
113-
target_group_arn = aws_alb_target_group.tst_tg.arn
115+
target_group_arn = aws_alb_target_group.tst_tg[0].arn
114116
}
115117
lifecycle {
116118
ignore_changes = [default_action[0].target_group_arn]
@@ -144,11 +146,12 @@ resource "aws_lambda_permission" "with_lb" {
144146
}
145147

146148
resource "aws_lambda_permission" "with_tst_lb" {
149+
count = var.use_codedeploy ? 1 : 0
147150
statement_id = "AllowExecutionFromlb"
148151
action = "lambda:InvokeFunction"
149152
function_name = aws_lambda_function.api_lambda.arn
150153
principal = "elasticloadbalancing.amazonaws.com"
151-
source_arn = aws_alb_target_group.tst_tg.arn
154+
source_arn = aws_alb_target_group.tst_tg[0].arn
152155
}
153156

154157
resource "aws_alb_target_group_attachment" "live_attachment" {
@@ -158,7 +161,8 @@ resource "aws_alb_target_group_attachment" "live_attachment" {
158161
}
159162

160163
resource "aws_alb_target_group_attachment" "tst_attachment" {
161-
target_group_arn = aws_alb_target_group.tst_tg.arn
164+
count = var.use_codedeploy ? 1 : 0
165+
target_group_arn = aws_alb_target_group.tst_tg[0].arn
162166
target_id = aws_lambda_function.api_lambda.arn # Latest
163167
depends_on = [aws_lambda_permission.with_tst_lb]
164168
}
@@ -259,15 +263,15 @@ resource "aws_lambda_function" "api_lambda" {
259263
}
260264

261265
resource "aws_lambda_alias" "live" {
262-
count = !var.use_codedeploy ? 1 : 0
263-
name = "live"
264-
description = "ALB sends traffic to this version"
265-
function_name = aws_lambda_function.api_lambda.arn
266+
count = ! var.use_codedeploy ? 1 : 0
267+
name = "live"
268+
description = "ALB sends traffic to this version"
269+
function_name = aws_lambda_function.api_lambda.arn
266270
function_version = aws_lambda_function.api_lambda.version
267271
}
268272

269273
resource "aws_lambda_alias" "live_codedeploy" {
270-
count = var.use_codedeploy ? 1 : 0
274+
count = var.use_codedeploy ? 1 : 0
271275
name = "live"
272276
description = "ALB sends traffic to this version"
273277
function_name = aws_lambda_function.api_lambda.arn
@@ -284,13 +288,13 @@ resource "aws_lambda_alias" "live_codedeploy" {
284288
# ==================== CodeDeploy ====================
285289

286290
resource "aws_codedeploy_app" "app" {
287-
count = var.use_codedeploy ? 1 : 0
291+
count = var.use_codedeploy ? 1 : 0
288292
compute_platform = "Lambda"
289293
name = "${local.long_name}-cd"
290294
}
291295

292296
resource "aws_codedeploy_deployment_group" "deployment_group" {
293-
count = var.use_codedeploy ? 1 : 0
297+
count = var.use_codedeploy ? 1 : 0
294298
app_name = aws_codedeploy_app.app[0].name
295299
deployment_group_name = "${local.long_name}-dg"
296300
service_role_arn = var.codedeploy_service_role_arn
@@ -322,18 +326,18 @@ resource "aws_iam_role_policy_attachment" "lambda_cloudwatch_attach" {
322326
# ==================== AppSpec file ====================
323327

324328
resource "local_file" "appspec_json" {
325-
count = var.use_codedeploy ? 1 : 0
329+
count = var.use_codedeploy ? 1 : 0
326330
filename = "${path.cwd}/appspec.json"
327331
content = jsonencode({
328332
version = 1
329333
Resources = [{
330334
apiLambdaFunction = {
331335
Type = "AWS::Lambda::Function"
332336
Properties = {
333-
Name = aws_lambda_function.api_lambda.function_name
334-
Alias = aws_lambda_alias.live_codedeploy[0].name
335-
CurrentVersion = aws_lambda_function.api_lambda.version # TODO: figure out how to get previous version for rollback
336-
TargetVersion = aws_lambda_function.api_lambda.version
337+
Name = aws_lambda_function.api_lambda.function_name
338+
Alias = aws_lambda_alias.live_codedeploy[0].name
339+
CurrentVersion = aws_lambda_alias.live_codedeploy[0].function_version
340+
TargetVersion = aws_lambda_function.api_lambda.version
337341
}
338342
}
339343
}],

outputs.tf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ output "lambda_security_group" {
77
}
88

99
output "lambda_live_alias" {
10-
value = var.use_codedeploy ? aws_lambda_alias.live_codedeploy[0] : aws_lambda_alias.live[0]
10+
value = length(aws_lambda_alias.live_codedeploy) > 0 ? aws_lambda_alias.live_codedeploy[0] : aws_lambda_alias.live[0]
1111
}
1212

1313
output "codedeploy_deployment_group" {
14-
value = var.use_codedeploy ? aws_codedeploy_deployment_group.deployment_group[0] : null
14+
value = length(aws_codedeploy_deployment_group.deployment_group) > 0 ? aws_codedeploy_deployment_group.deployment_group[0] : null
1515
}
1616

1717
output "codedeploy_appspec_json_file" {
18-
value = var.use_codedeploy ? local_file.appspec_json[0].filename : null
18+
value = length(local_file.appspec_json) > 0 ? local_file.appspec_json[0].filename : null
1919
}
2020

2121
output "alb" {

0 commit comments

Comments
 (0)