在terraform 0.12的条件下是否可以报告错误?

在terraform 0.12的条件下是否可以报告错误?,terraform,terraform0.12+,Terraform,Terraform0.12+,原始参考- 还可以像上面的问题那样进行条件检查吗 resource "null_resource" "condition_checker" { count = "${var.variable == 1 ? 0 : 1}" "Insert your custom error message" = true } 类似的格式在terraform 0.12和0.13中不起作用,我找不到任何关于删除此功能的参考。是否

原始参考-

还可以像上面的问题那样进行条件检查吗

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的现代版本支持直接在相应的
variable
块中写入变量验证检查。例如:

variable "variable" {
  type = number

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

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

您试图实现什么?是否要执行变量验证?如果0.13引入了变量验证:。如果您还无法升级到0.13,那么它在技术上也可以追溯到功能标志后面的0.12.20:我实际尝试的是使用定义的工作区验证当前工作区-类似terraform.workspace!=var.workspace抛出一个错误。那么,为什么您要请求工作区,而不只是使用terraform.workspace中的值?您仍然可以通过输入验证检查变量是否设置为
terraform.workspace
。当您在远程存储状态并使用workspace区分密钥时,很容易出错。假设我切换到工作区“一”,并尝试运行工作区“二”的脚本。但是我想,terraform在测试时非常可靠,可以避免这些错误和差异。正如我在上面的评论中提到的,我尝试用输入变量验证terraform.workspace变量。正如您所提到的,我可能无法做到这一点,因为变量验证不允许在块中提及任何其他变量。考虑到这是我们目前所能做的最多的了,我将接受这一点作为答案-