在terraform为0.12的情况下是否可以报告错误?

问题描述

原始参考-Quit condition on Terraform blueprint

是否仍然可以像上述问题一样进行条件检查

resource "null_resource" "condition_checker" {
  count = "${var.variable == 1 ? 0 : 1}"
  "Insert your custom error message" = true
}

相似格式在terraform 0.12和0.13中不起作用,我找不到删除功能的任何参考。是否可以像这样进行0.12或0.13的检查?

解决方法

您在这里所指的并不是从来没有一个真正的Terraform功能,而是一个利用早期版本的Terraform中的错误来获得Terraform不明确支持的结果的示例。

话说回来,现代版本的Terraform支持custom variable validation rules,使您可以直接在相应的variable块内写出变量验证检查。例如:

variable "variable" {
  type = number

  validation {
    condition     = var.variable == 1
    error_message = "Variable value must always be 1."
  }
}

话虽如此,我只是从这里的问题中复制了您所设计的示例,因此需要对实际示例进行一些调整。还要注意,变量验证规则只能取决于变量值和其他常量,因此您不能将其用于更复杂的检查,例如涉及两个不同变量的检查。对于这种情况,我建议您进行重构,以使相关的值到达对象类型的单个变量中,然后可以对该对象是否有效进行验证。