Skip to content

Commit 0a5eebb

Browse files
authored
feat: map ssm_path with ssm version and detect changes of ssm parameter store's version (#7)
* feat: map ssm_path with ssm version and detect changes of ssm parameter store's version * feat: code refactorization
1 parent aa1e92f commit 0a5eebb

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

data.tf

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,22 @@ data "aws_kms_alias" "ssm" {
99
name = var.ssm_kms_alias
1010
}
1111

12+
data "aws_ssm_parameter" "secret_env_vars" {
13+
for_each = var.secret_environment_variables
14+
name = "${var.parameter_path_prefix}/${each.value}"
15+
}
16+
17+
## Create map of "parameter_name => parameter_version" to detect the change of parameter's value
18+
resource "null_resource" "parameter_version_check" {
19+
triggers = {
20+
ssm_versions = jsonencode(
21+
{
22+
for parameter in data.aws_ssm_parameter.secret_env_vars : parameter.name => parameter.version
23+
}
24+
)
25+
}
26+
}
27+
1228
locals {
1329
aws_partition = data.aws_partition.current.partition
1430
account_id = data.aws_caller_identity.current.account_id
@@ -24,7 +40,7 @@ locals {
2440
secret_environment_variables = flatten([
2541
for name, valueFrom in var.secret_environment_variables : {
2642
name = name
27-
valueFrom = "${var.parameter_path_prefix}/${valueFrom}"
43+
valueFrom = data.aws_ssm_parameter.secret_env_vars[name].name
2844
}
2945
])
3046
}

main.tf

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,11 @@ resource "aws_ecs_task_definition" "task" {
4242
}
4343
]
4444
)
45+
46+
## The resource will be restarted if null resource restarts
47+
lifecycle {
48+
replace_triggered_by = [
49+
null_resource.parameter_version_check
50+
]
51+
}
4552
}

0 commit comments

Comments
 (0)