Terraform - 确保根据是否还设置了另一个值来设置值
Terraform - ensure value is set depending on if another value is also set
如果其他值之一是特定字符串,我想强制设置一个值而不是使用默认值“”。
例如我有:
module "test_beanstalk" {
tier = "Worker"
queue = "myQueue"
///
}
在此,当 tier
设置为 worker
时,我想强制执行 queue
也已设置。在上面的示例中,有一个场景可以省略队列,导致 aws 生成一个通用队列,而不是使用该特定应用程序所需的队列。
此类功能在 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 错误
如果其他值之一是特定字符串,我想强制设置一个值而不是使用默认值“”。
例如我有:
module "test_beanstalk" {
tier = "Worker"
queue = "myQueue"
///
}
在此,当 tier
设置为 worker
时,我想强制执行 queue
也已设置。在上面的示例中,有一个场景可以省略队列,导致 aws 生成一个通用队列,而不是使用该特定应用程序所需的队列。
此类功能在 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 错误