我想强制设置一个值,而不是使用默认的"quot;如果其他值之一是某个字符串。
例如,我有:
module "test_beanstalk" {
tier = "Worker"
queue = "myQueue"
///
}
在这种情况下,当tier
被设置为worker
时,我想强制执行queue
也被设置。在上面的例子中,有一个场景可以省略队列,从而导致aw生成一个通用的队列,而不是使用特定应用程序所需的队列。
这样的功能在TF中不直接支持。但您可以使用locals
强制TF出错,如果验证失败,某些条件只会导致错误。例如,在您的test_beanstalk
中,您可以具有:
variable "tier" {
default = "Worker"
}
variable "queue" {
default = ""
}
locals {
if_queue_given = var.tier == "Worker" && var.queue == "" ? tonumber("queue can't be empty") : 1
}
如果条件var.tier == "Worker" && var.queue == ""
为true
,则将执行tonumber("queue can't be empty")
并导致TF错误。