Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services Terraform-为变量指定多个可能的值_Amazon Web Services_Variables_Amazon Cloudformation_Terraform_Terraform Provider Aws - Fatal编程技术网

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

Amazon web services Terraform-为变量指定多个可能的值,amazon-web-services,variables,amazon-cloudformation,terraform,terraform-provider-aws,Amazon Web Services,Variables,Amazon Cloudformation,Terraform,Terraform Provider Aws,CloudFormation为参数提供了AllowedValue,这表明参数的可能值可以来自此列表。如何使用地形变量实现这一点?列表的变量类型不提供此功能。所以,如果我希望我的变量只有两个可能的值,那么我如何用Terraform实现这一点呢。我要复制的CloudFormation脚本是: "ParameterName": { "Description": "desc", "Type": "String", "Default": true,

CloudFormation为参数提供了AllowedValue,这表明参数的可能值可以来自此列表。如何使用地形变量实现这一点?列表的变量类型不提供此功能。所以,如果我希望我的变量只有两个可能的值,那么我如何用Terraform实现这一点呢。我要复制的CloudFormation脚本是:

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

我不知道官方的方法,但有一种有趣的方法:

更新:

Terraform现在在Terraform 0.13中提供:

variable "somevar" {
  type = string
  description = "must be true or false"

  validation {
    condition     = can(regex("^(true|false)$", var.somevar))
    error_message = "Must be true or false."
  }
}

所以,如果变量不在列表中,Terraform将引发错误并停止进一步的过程?如果变量在列表中,count的值将为零?当计数为1时将抛出错误?
variable "somevar" {
  type = string
  description = "must be true or false"

  validation {
    condition     = can(regex("^(true|false)$", var.somevar))
    error_message = "Must be true or false."
  }
}