我有一个Terraform脚本,其中包含一些从Consul填充的变量。我想在两种不同的场景中使用这个脚本:场景1.使用Consul的默认值,一切正常。情景……
你可以使用 覆盖文件 。所以,如果你有 vars.tf 含:
vars.tf
variable "my_optional_variable" { default = "null" }
和 override.tf 包含:
override.tf
variable "my_optional_variable" { default = "not null" }
然后 ${var.my_optional_variable} 应该相等 not null 。覆盖文件最后加载并合并到您的配置中。而不是像其他一样附加在一起 .tf 目录中的文件。
${var.my_optional_variable}
not null
.tf
另一种选择是 coalesce 它适用于空字符串,所以稍微好一点 "null" 串。
coalesce
"null"
鉴于您的场景或具有两个变量/数据源的类似情况
variable "my_default_value" { default = "CentOS 7" } variable "my_optional_variable" { default = "" }
你可以参加 “来自给定参数的第一个非空值。必须提供至少两个参数。”
data "openstack_images_image_v2" "bastion_image" { name = "${coalesce(var.my_optional_variable, var.my_default_value)}" }