Terraform-为变量指定多个可能的值

时间:2019-01-18 12:58:55

标签: amazon-web-services variables amazon-cloudformation terraform terraform-provider-aws

CloudFormation提供了用于参数的AllowedValues,它指示该参数的可能值可以来自此列表。如何使用Terraform变量实现这一目标?列表的变量类型不提供此功能。因此,如果我希望变量仅具有两个可能的值,那么如何使用Terraform来实现这一点。我要复制的CloudFormation脚本是:

"ParameterName": {
        "Description": "desc",
        "Type": "String",
        "Default": true,
        "AllowedValues": [
            "true",
            "false"
        ]
   }

1 个答案:

答案 0 :(得分:3)

我不知道官方的方式,但是in a Terraform issue中描述了一种有趣的技术:

variable "values_list" {
  description = "acceptable values"
  type = "list"
  default = ["true", "false"]
}

variable "somevar" {
description = "must be true or false"
}

resource "null_resource" "is_variable_value_valid" {
  count = "${contains(var.values_list, var.somevar) == true ? 0 : 1}"
  "ERROR: The somevar value can only be: true or false" = true
}