I have a variable:
variable groupOptions {
type=map
}
that I use in a for_each dynamic block of an aws_db_option_group resource:
resource "aws_db_option_group" "rdsOptionGroup" {
name = var.groupName
option_group_description = var.groupDescription
engine_name = var.rdsEngine
major_engine_version = var.rdsEngineFamily
dynamic option {
for_each = var.groupOptions
content {
db_security_group_memberships = option.value.DBSecGrps
option_name = option.value.Name
port = option.value.Port
version = option.value.Version
vpc_security_group_memberships = option.value.VPCSecGrps
dynamic option_settings {
for_each = option.value.Settings
content {
name = option_settings.value.Name
value = option_settings.value.Value
}
}
}
}
tags = merge(
var.tagsAIG,
map(
"Name","${var.groupName}"
)
)
}
My terraform.tfvars file fills the rdsOpstions variable like so:
groupOptions = {
"backup-restore" = {
"DBSecGrps" = []
"Name" = "SQLSERVER_BACKUP_RESTORE"
"Port" = 0
"Version" = ""
"VPCSecGrps" = []
"Settings" = {
"iam-role" = {
"Name" = "IAM_ROLE_ARN"
"Value" = "arn:aws:iam::0000000000:role/service-role/my-s3-backup-role"
}
}
}
}
My question is how can I substitue that hard-coded value with the output of a data resource or module, as that name can vary from one env to the next.