Terraform 可选 jsonencode 属性

2024-01-13

好的,获取以下 terraform 片段:

variable "my_var1" {
  type    = string
  default = null
}
variable "my_var2" {
  type    = string
  default = null
}
output "my_out" {
  value = jsonencode({
    my_attribute1 = var.my_var1
    my_attribute2 = var.my_var2
  })
}

我希望这样,如果my_var1 & my_var2未指定,它们不会出现在my_out任何。 (即输出将是{})但是当前的输出是:

my_out = {"my_attribute1":null,"my_attribute2":null}

有没有办法做到这一点? (最好不必直接切换到 json 文本中的字符串插值)


我能够利用用于表达 https://www.terraform.io/docs/configuration/expressions.html#for-expressions与当地人一起:

variable "my_var1" {
  type    = string
  default = null
}

variable "my_var2" {
  type    = string
  default = null
}

locals {
  attributes = {
    my_attribute1 = var.my_var1
    my_attribute2 = var.my_var2
  }
}

output "my_out" {
  value = jsonencode({ for k, v in local.attributes : k => v if v != null })
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Terraform 可选 jsonencode 属性 的相关文章

随机推荐