diff --git a/iam.tf b/iam.tf index e081947..6560b89 100644 --- a/iam.tf +++ b/iam.tf @@ -1,18 +1,4 @@ -locals { - parsed_state_files = [ - for url in var.state_files : { - bucket = regex("s3://([^/]+)/.*", url)[0] - prefix = regex("s3://[^/]+/(.*)", url)[0] - } - ] - - grouped_by_bucket = { - for obj in local.parsed_state_files : obj.bucket => compact([ - for obj2 in local.parsed_state_files : obj2.bucket == obj.bucket ? obj2.prefix : null - ])... - } -} data "aws_iam_policy_document" "lambda_assume_role" { statement { diff --git a/lambda.tf b/lambda.tf index 3155ee7..45ad956 100644 --- a/lambda.tf +++ b/lambda.tf @@ -1,6 +1,4 @@ -locals { - image_arn = "237144093413.dkr.ecr.us-east-2.amazonaws.com/infracost/state-parser" -} + resource "aws_lambda_function" "state_file_parser" { function_name = "infracost-state-file-parser" @@ -13,7 +11,7 @@ resource "aws_lambda_function" "state_file_parser" { timeout = 60 memory_size = 128 - image_uri = "${local.image_arn}:${var.parser_version}" + image_uri = "${local.image_uri}:${var.parser_version}" environment { variables = { diff --git a/locals.tf b/locals.tf new file mode 100644 index 0000000..07db7dd --- /dev/null +++ b/locals.tf @@ -0,0 +1,17 @@ +locals { + parsed_state_files = [ + for url in var.state_files : { + bucket = regex("s3://([^/]+)/.*", url)[0] + prefix = regex("s3://[^/]+/(.*)", url)[0] + } + ] + + grouped_by_bucket = { + for obj in local.parsed_state_files : obj.bucket => compact([ + for obj2 in local.parsed_state_files : obj2.bucket == obj.bucket ? obj2.prefix : null + ])... + } + + image_uri = "237144093413.dkr.ecr.us-east-2.amazonaws.com/infracost/state-parser" + image_arn = "arn:aws:ecr:us-east-2:237144093413:repository/infracost/cloudscraper" +}