Я хотел бы принудительно установить значение, а не использовать значение по умолчанию "", если одно из других значений является определенной строкой.
Например, у меня есть:
module "test_beanstalk" {
tier = "Worker"
queue = "myQueue"
///
}
в этом случае, когда для tier
установлено значение worker
, я бы хотел, чтобы queue
также было установлено. В приведенном выше примере есть сценарий, в котором очередь может быть опущена, что приводит к тому, что aws создает общую очередь, а не использует очередь, которая требуется для этого конкретного приложения.
Такой функцией является напрямую не поддерживается в TF. Но вы можете заставить TF выдать ошибку, используя locals
и некоторые условия, которые просто приведут к ошибке, если ваша проверка не пройдена. Например, в вашем 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
}
tonumber("queue can't be empty")
будет выполнено и приведет к ошибке TF, если условие var.tier == "Worker" && var.queue == ""
равно true
.