以有条件的方式Terraform动态块内容



我有这个terraform动态块,如下所示:

dynamic "backend_http_settings" {
for_each = var.backend_http_settings
content {
name                                = lookup(backend_http_settings.value, "name")
port                                = lookup(backend_http_settings.value, "port")
protocol                            = lookup(backend_http_settings.value, "protocol")
cookie_based_affinity               = lookup(backend_http_settings.value, "cookie_based_affinity")
probe_name                          = lookup(backend_http_settings.value, "probe_name")
trusted_root_certificate_names      = [lookup(backend_http_settings.value, "trusted_root_certificate_names"), null]
pick_host_name_from_backend_address = lookup(backend_http_settings.value, "pick_host_name_from_backend_address")
request_timeout                     = lookup(backend_http_settings.value, "request_timeout")
}
}

var.backend_http_settings的值如下:

backend_http_settings = [
{
name                                = "apimPoolGatewaySetting"
port                                = 443
protocol                            = "Https"
cookie_based_affinity               = "Disabled"
probe_name                          = "apimgatewayprobe"
trusted_root_certificate_names      = "whitelistcert1"
pick_host_name_from_backend_address = true
request_timeout                     = 180
},
{
name                                = "vm"
port                                = 80
protocol                            = "Http"
cookie_based_affinity               = "Disabled"
probe_name                          = "vm"
pick_host_name_from_backend_address = true
request_timeout                     = 180
}  
]

但看看trusted_root_certificate_names,在第二个块中,它没有那个值。那么,我如何有条件地在content中呈现(移除或添加(trusted_root_certificate_names呢?

因为我不能将null作为值传递,因为它不将其视为null。那么我该怎么做呢?

由于trusted_root_certificate_names是列表,您可以按如下方式删除它:

trusted_root_certificate_names      = lookup(backend_http_settings.value, "trusted_root_certificate_names", null) != null ? [backend_http_settings.value["trusted_root_certificate_names"]] : null 

最新更新