我有这个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