mirror of
https://github.com/farcasclaudiu/terraform-course.git
synced 2026-06-22 03:01:53 +03:00
module with flatten function
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
locals {
|
||||
my_parameters = [
|
||||
{
|
||||
"prefix" = "/myprefix"
|
||||
"parameters" = [
|
||||
{
|
||||
"name" = "myparameter"
|
||||
"value" = "myvalue"
|
||||
},
|
||||
{
|
||||
"name" = "environment"
|
||||
"value" = "dev"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"prefix" = "/myapp"
|
||||
"parameters" = [
|
||||
{
|
||||
"name" = "environment"
|
||||
"value" = "prod"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
module "parameters" {
|
||||
source = "./ssm-parameter"
|
||||
parameters = local.my_parameters
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
provider "aws" {
|
||||
region = "eu-west-1"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
locals {
|
||||
parameters = flatten([
|
||||
for parameters in var.parameters: [
|
||||
for keyvalues in parameters.parameters:
|
||||
{
|
||||
"name" = "${parameters.prefix}/${keyvalues.name}"
|
||||
"value" = keyvalues.value
|
||||
}
|
||||
]
|
||||
])
|
||||
}
|
||||
|
||||
resource "aws_ssm_parameter" "parameter" {
|
||||
for_each = { for keyvalue in local.parameters: keyvalue.name => keyvalue.value }
|
||||
name = each.key
|
||||
type = "String"
|
||||
value = each.value
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
variable "parameters" {
|
||||
type = list(object({
|
||||
prefix = string
|
||||
parameters = list(object({
|
||||
name = string
|
||||
value = string
|
||||
}))
|
||||
}))
|
||||
default = []
|
||||
}
|
||||
Reference in New Issue
Block a user