У меня есть список подсетей и wi sh, чтобы присоединиться к ним, если у них установлен флаг enable в значение true.
locals {
env_whitelisted_ips = {
default = [
{ subnets = "${data.terraform_remote_state.infra.outputs.subnet_ids}", enabled = "true"},
{ subnets = "${data.terraform_remote_state.infra.outputs.public_subnet_ids}", enabled = "false"},
{ subnets = "${data.terraform_remote_state.infra.outputs.nlb_public_subnet_ids}", enabled = "false"},
{ subnets = "${data.terraform_remote_state.infra.outputs.vpc_cidr_block}", enabled = "false"}
]
}
Теперь распечатайте требуемые значения, установите значение true.
resource "null_resource" "default_3" {
for_each = { for k, v in local.env_whitelisted_ips : k => v }
triggers = {
subnet_value = jsonencode(each.value)
account_key = jsonencode(each.key)
}
}
И это в настоящее время производит.
+ triggers = {
+ "account_key" = "\"default\""
+ "subnet_value" = jsonencode(
[
+ {
+ enabled = "true"
+ subnets = [
+ "subnet-xxx",
+ "subnet-yyy",
+ "subnet-zzz",
]
}
Но то, что я ищу, это:
resource "null_resource" "default_3" {
for_each = { for k, v in local.env_whitelisted_ips : k => v.contains["enabled"] == true }
triggers = {
subnet_value = jsonencode(each.value.subnets)
}
}
Создание значений:
+ triggers = {
+ "account_value" = jsonencode(
[
+ {
+ subnets = [
+ "subnet-xxx",
+ "subnet-yyy",
+ "subnet-zzz",
]
}
Любая идея будет принята с благодарностью :)