From 0ae5856578536e1e71c833d7d60dc61541c7c706 Mon Sep 17 00:00:00 2001 From: badra001 Date: Wed, 26 Jan 2022 10:31:16 -0500 Subject: [PATCH] add lambda --- README.md | 2 ++ code/ddns-lambda.zip | Bin 0 -> 11080 bytes code/defaults.tf | 1 + code/make-zip-file.tf | 20 ++++++++++++++++++++ defaults.tf | 2 ++ lambda.tf | 33 +++++++++++++++++++++++++++++++++ variables.tf | 12 +++++++++++- 7 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 code/ddns-lambda.zip create mode 120000 code/defaults.tf create mode 100644 code/make-zip-file.tf create mode 100644 lambda.tf diff --git a/README.md b/README.md index dca4c1e..bdb7c13 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ No modules. | [aws_dynamodb_table.table](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/dynamodb_table) | resource | | [aws_iam_role.role](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource | | [aws_iam_role_policy_attachment.role](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource | +| [aws_lambda_function.lambda](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_function) | resource | | [aws_arn.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/arn) | data source | | [aws_caller_identity.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/caller_identity) | data source | | [aws_iam_policy.lambda_policies](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy) | data source | @@ -38,6 +39,7 @@ No modules. | [component\_tags](#input\_component\_tags) | Additional tags for Components (s3, kms, ddb) | `map(map(string))` |
{
"ddb": {},
"kms": {},
"s3": {}
}
| no | | [create](#input\_create) | Flag to indicate whether to create the resources or not (default: true) | `bool` | `true` | no | | [dynamodb\_table\_name](#input\_dynamodb\_table\_name) | Different DynamoDB table name to override default of var.name) | `string` | `null` | no | +| [lambda\_environment\_variables](#input\_lambda\_environment\_variables) | Map of lambda environment variables and values | `map(string)` |
{
"DynamoDBName": null,
"SleepTime": 60,
"TagKeyCname": "boc:dns:cname",
"TagKeyHostName": "TBD",
"TagKeyZone": "boc:dns:zone"
}
| no | | [lambda\_name](#input\_lambda\_name) | Different Lambda name to override default of var.name) | `string` | `null` | no | | [name](#input\_name) | Name to use within all the created resources (default: inf-dynamic-route53) | `string` | `"inf-dynamic-route53"` | no | | [override\_prefixes](#input\_override\_prefixes) | Override built-in prefixes by component. This should be used primarily for common infrastructure things | `map(string)` | `{}` | no | diff --git a/code/ddns-lambda.zip b/code/ddns-lambda.zip new file mode 100644 index 0000000000000000000000000000000000000000..f0143ac6c9068f7de29648b04af7372690f18276 GIT binary patch literal 11080 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 literal 0 HcmV?d00001 diff --git a/code/defaults.tf b/code/defaults.tf new file mode 120000 index 0000000..aeaa3fe --- /dev/null +++ b/code/defaults.tf @@ -0,0 +1 @@ +../defaults.tf \ No newline at end of file diff --git a/code/make-zip-file.tf b/code/make-zip-file.tf new file mode 100644 index 0000000..cab186d --- /dev/null +++ b/code/make-zip-file.tf @@ -0,0 +1,20 @@ +locals { + lambda_file = format("%v.zip", local._defaults["lambda_file"]) + lambda_code_files = [ + "ddns-lambda.py", + ] + # this gets a sha256hash of each file, and then a sha256 hash of the comma-separated hashes. This will help determine + # to make a new zip file or not + lambda_code_files_hashes = { for f in local.lambda_code_files : f => filesha256(f) } + lambda_files_hash = sha256(join(",", values(local.lambda_code_files_hashes))) +} + +resource "null_resource" "zip" { + triggers = { + lambda_files_hash = local.lambda_files_hash + } + + provisioner "local-exec" { + command = "zip ${local.lambda_file} -j -r ${join(" ", local.lambda_code_files)}" + } +} diff --git a/defaults.tf b/defaults.tf index 71d8828..7168371 100644 --- a/defaults.tf +++ b/defaults.tf @@ -2,5 +2,7 @@ locals { _defaults = { "force_detach_policies" = false "max_session_duration" = 3600 + "lambda_handler" = "ddns-lambda.lambda_handler" + "lambda_file" = "ddns-lambda" } } diff --git a/lambda.tf b/lambda.tf new file mode 100644 index 0000000..f7f5af3 --- /dev/null +++ b/lambda.tf @@ -0,0 +1,33 @@ +locals { + lambda_environment_variables = lookup(var.lambda_environment_variables, "DynamoDBName", null) != null ? var.lambda_environment_variables : merge( + var.lambda_environment_variables, + tomap({ "DynamoDBName" = local.dynamodb_table_name }), + ) + lambda_file = format("%v/code/%v.zip", path.module, local._defaults["lambda_file"]) +} + +resource "aws_lambda_function" "lambda" { + function_name = local.lambda_name + handler = local._defaults["lambda_handler"] + memory_size = 128 + reserved_concurrent_executions = -1 + role = aws_iam_role.role.arn + runtime = "python3.9" + source_code_hash = filebase64sha256(local.lambda_file) + filename = local.lambda_file + timeout = 30 + # version = "$LATEST" + + environment { + variables = local.lambda_environment_varaibles + } + timeouts {} + tracing_config { + mode = "PassThrough" + } + tags = merge( + local.base_tags, + var.tags, + map("Name", local.lambda_name) + ) +} diff --git a/variables.tf b/variables.tf index e1c9ca6..ee06181 100644 --- a/variables.tf +++ b/variables.tf @@ -16,4 +16,14 @@ variable "lambda_name" { default = null } - +variable "lambda_environment_variables" { + description = "Map of lambda environment variables and values" + type = map(string) + default = { + SleepTime = 60 + DynamoDBName = null + TagKeyCname = "boc:dns:cname" + TagKeyZone = "boc:dns:zone" + TagKeyHostName = "TBD" + } +}