From 2429c7ea34a66cdb2f782e4c8f9517da5ffb5473 Mon Sep 17 00:00:00 2001 From: milldr Date: Wed, 28 Aug 2024 10:48:09 -0400 Subject: [PATCH 1/7] revert changes --- main.tf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/main.tf b/main.tf index 057b495..48325e3 100644 --- a/main.tf +++ b/main.tf @@ -9,11 +9,14 @@ module "cloudwatch_log_group" { source = "cloudposse/cloudwatch-logs/aws" version = "0.6.6" + enabled = module.this.enabled + iam_role_enabled = false kms_key_arn = var.cloudwatch_logs_kms_key_arn retention_in_days = var.cloudwatch_logs_retention_in_days name = "/aws/lambda/${var.function_name}" - context = module.this.context + + tags = module.this.tags } resource "aws_lambda_function" "this" { From 246e1493d4e799fce529ea4585f3fb13695d75cf Mon Sep 17 00:00:00 2001 From: milldr Date: Wed, 28 Aug 2024 10:53:45 -0400 Subject: [PATCH 2/7] added outputs and tests for catch future breaking changes --- examples/complete/outputs.tf | 15 +++++++++++++++ outputs.tf | 5 +++++ test/src/examples_complete_test.go | 8 ++++++++ 3 files changed, 28 insertions(+) diff --git a/examples/complete/outputs.tf b/examples/complete/outputs.tf index 493dd38..39eccee 100644 --- a/examples/complete/outputs.tf +++ b/examples/complete/outputs.tf @@ -2,3 +2,18 @@ output "arn" { description = "ARN of the lambda function" value = module.lambda.arn } + +output "function_name" { + description = "Lambda function name" + value = module.lambda.function_name +} + +output "role_name" { + description = "Lambda IAM role name" + value = module.lambda.role_name +} + +output "cloudwatch_log_group_name" { + description = "Name of Cloudwatch log group" + value = module.lambda_cloudwatch_log_group_name +} diff --git a/outputs.tf b/outputs.tf index 73bd4be..f627179 100644 --- a/outputs.tf +++ b/outputs.tf @@ -27,3 +27,8 @@ output "role_arn" { description = "Lambda IAM role ARN" value = local.enabled ? aws_iam_role.this[0].arn : null } + +output "cloudwatch_log_group_name" { + description = "Name of Cloudwatch log group" + value = local.enabled ? module.cloudwatch_log_group.name : null +} diff --git a/test/src/examples_complete_test.go b/test/src/examples_complete_test.go index 45dbc20..18fb1cb 100644 --- a/test/src/examples_complete_test.go +++ b/test/src/examples_complete_test.go @@ -39,7 +39,15 @@ func TestExamplesComplete(t *testing.T) { // Run `terraform output` to get the value of an output variable arn := terraform.Output(t, terraformOptions, "arn") + function_name := terraform.Output(t, terraformOptions, "function_name") + role_name := terraform.Output(t, terraformOptions, "role_name") + cloudwatch_log_group_name := terraform.Output(t, terraformOptions, "cloudwatch_log_group_name") + + // Validate values returned by terraform assert.NotNil(t, arn) + assert.Equal(t, "todo", function_name) + assert.Equal(t, "todo", role_name) + assert.Equal(t, "todo", cloudwatch_log_group_name) sess := session.Must(session.NewSessionWithOptions(session.Options{ SharedConfigState: session.SharedConfigEnable, From 1d6cf11fa3cfaa6aaa235788740710163756de44 Mon Sep 17 00:00:00 2001 From: milldr Date: Wed, 28 Aug 2024 11:00:31 -0400 Subject: [PATCH 3/7] added outputs and tests for catch future breaking changes --- examples/complete/outputs.tf | 2 +- test/src/examples_complete_test.go | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/complete/outputs.tf b/examples/complete/outputs.tf index 39eccee..9c596f2 100644 --- a/examples/complete/outputs.tf +++ b/examples/complete/outputs.tf @@ -15,5 +15,5 @@ output "role_name" { output "cloudwatch_log_group_name" { description = "Name of Cloudwatch log group" - value = module.lambda_cloudwatch_log_group_name + value = module.lambda.cloudwatch_log_group_name } diff --git a/test/src/examples_complete_test.go b/test/src/examples_complete_test.go index 18fb1cb..b655630 100644 --- a/test/src/examples_complete_test.go +++ b/test/src/examples_complete_test.go @@ -40,14 +40,14 @@ func TestExamplesComplete(t *testing.T) { // Run `terraform output` to get the value of an output variable arn := terraform.Output(t, terraformOptions, "arn") function_name := terraform.Output(t, terraformOptions, "function_name") - role_name := terraform.Output(t, terraformOptions, "role_name") - cloudwatch_log_group_name := terraform.Output(t, terraformOptions, "cloudwatch_log_group_name") + role_name := terraform.Output(t, terraformOptions, "role_name") + cloudwatch_log_group_name := terraform.Output(t, terraformOptions, "cloudwatch_log_group_name") // Validate values returned by terraform assert.NotNil(t, arn) - assert.Equal(t, "todo", function_name) - assert.Equal(t, "todo", role_name) - assert.Equal(t, "todo", cloudwatch_log_group_name) + assert.Equal(t, "todo", function_name) + assert.Equal(t, "todo", role_name) + assert.Equal(t, "todo", cloudwatch_log_group_name) sess := session.Must(session.NewSessionWithOptions(session.Options{ SharedConfigState: session.SharedConfigEnable, From 919c20a3294998148acb96f06e623f82116c079d Mon Sep 17 00:00:00 2001 From: milldr Date: Wed, 28 Aug 2024 11:05:03 -0400 Subject: [PATCH 4/7] tflint and formatting --- examples/complete/main.tf | 6 +++--- examples/complete/outputs.tf | 6 +++--- examples/complete/versions.tf | 4 ++++ main.tf | 2 +- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/examples/complete/main.tf b/examples/complete/main.tf index 481a0e8..b678c53 100644 --- a/examples/complete/main.tf +++ b/examples/complete/main.tf @@ -7,8 +7,8 @@ locals { policy_arn_prefix = format( "arn:%s:iam::%s:policy", - join("", data.aws_partition.current.*.partition), - join("", data.aws_caller_identity.current.*.account_id), + join("", data.aws_partition.current[*].partition), + join("", data.aws_caller_identity.current[*].account_id), ) policy_arn_inside = format("%s/%s", local.policy_arn_prefix, local.policy_name_inside) @@ -77,7 +77,7 @@ resource "aws_iam_role_policy_attachment" "outside" { module "lambda" { source = "../.." - filename = join("", data.archive_file.lambda_zip.*.output_path) + filename = join("", data.archive_file.lambda_zip[*].output_path) function_name = module.label.id handler = var.handler runtime = var.runtime diff --git a/examples/complete/outputs.tf b/examples/complete/outputs.tf index 9c596f2..3071a25 100644 --- a/examples/complete/outputs.tf +++ b/examples/complete/outputs.tf @@ -5,15 +5,15 @@ output "arn" { output "function_name" { description = "Lambda function name" - value = module.lambda.function_name + value = module.lambda.function_name } output "role_name" { description = "Lambda IAM role name" - value = module.lambda.role_name + value = module.lambda.role_name } output "cloudwatch_log_group_name" { description = "Name of Cloudwatch log group" - value = module.lambda.cloudwatch_log_group_name + value = module.lambda.cloudwatch_log_group_name } diff --git a/examples/complete/versions.tf b/examples/complete/versions.tf index b78d471..c6da977 100644 --- a/examples/complete/versions.tf +++ b/examples/complete/versions.tf @@ -6,5 +6,9 @@ terraform { source = "hashicorp/aws" version = ">= 3.0" } + archive = { + source = "hashicorp/archive" + version = ">= 2.0" + } } } diff --git a/main.tf b/main.tf index 48325e3..b173da6 100644 --- a/main.tf +++ b/main.tf @@ -16,7 +16,7 @@ module "cloudwatch_log_group" { retention_in_days = var.cloudwatch_logs_retention_in_days name = "/aws/lambda/${var.function_name}" - tags = module.this.tags + tags = module.this.tags } resource "aws_lambda_function" "this" { From 3593f114ea86c5685fc9fae8ca092db00c2810b6 Mon Sep 17 00:00:00 2001 From: milldr Date: Wed, 28 Aug 2024 11:09:53 -0400 Subject: [PATCH 5/7] corrected output --- outputs.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/outputs.tf b/outputs.tf index f627179..ee60621 100644 --- a/outputs.tf +++ b/outputs.tf @@ -30,5 +30,5 @@ output "role_arn" { output "cloudwatch_log_group_name" { description = "Name of Cloudwatch log group" - value = local.enabled ? module.cloudwatch_log_group.name : null + value = local.enabled ? module.cloudwatch_log_group.log_group_name : null } From 2ba014fb33e9f0985cda6e97a01e88a9aba14ade Mon Sep 17 00:00:00 2001 From: milldr Date: Wed, 28 Aug 2024 11:17:46 -0400 Subject: [PATCH 6/7] set valid expected test result --- test/src/examples_complete_test.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/src/examples_complete_test.go b/test/src/examples_complete_test.go index b655630..d7996b4 100644 --- a/test/src/examples_complete_test.go +++ b/test/src/examples_complete_test.go @@ -45,9 +45,9 @@ func TestExamplesComplete(t *testing.T) { // Validate values returned by terraform assert.NotNil(t, arn) - assert.Equal(t, "todo", function_name) - assert.Equal(t, "todo", role_name) - assert.Equal(t, "todo", cloudwatch_log_group_name) + assert.Equal(t, "eg-ue2-test-" + randID + "-example-complete", function_name) + assert.Equal(t, "eg-ue2-test-" + randID + "-example-complete-us-east-2", role_name) + assert.Equal(t, "/aws/lambda/eg-ue2-test-" + randID + "-example-complete", cloudwatch_log_group_name) sess := session.Must(session.NewSessionWithOptions(session.Options{ SharedConfigState: session.SharedConfigEnable, From 71fdcc414dd9dfb497ef6ee69668020a6a6bf651 Mon Sep 17 00:00:00 2001 From: milldr Date: Wed, 28 Aug 2024 11:19:38 -0400 Subject: [PATCH 7/7] use tabs --- test/src/examples_complete_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/src/examples_complete_test.go b/test/src/examples_complete_test.go index d7996b4..9f8a0de 100644 --- a/test/src/examples_complete_test.go +++ b/test/src/examples_complete_test.go @@ -43,7 +43,7 @@ func TestExamplesComplete(t *testing.T) { role_name := terraform.Output(t, terraformOptions, "role_name") cloudwatch_log_group_name := terraform.Output(t, terraformOptions, "cloudwatch_log_group_name") - // Validate values returned by terraform + // Validate values returned by terraform assert.NotNil(t, arn) assert.Equal(t, "eg-ue2-test-" + randID + "-example-complete", function_name) assert.Equal(t, "eg-ue2-test-" + randID + "-example-complete-us-east-2", role_name)