动态设置变量的Terraform设置选项

时间:2020-09-03 14:15:30

标签: terraform

我正在将AWS CloudFormation转换为Terraform模板。

当我在AWS CloudFormation中创建VPC时,可以设置预定义的值,例如“可用区”,使我能够选择在某些部署中使用哪些可用区,如下所示:

Parameters:
  AvailabilityZones:
    Description: 'List of Availability Zones to use for the subnets in the VPC. Note:
      The logical order is preserved.'
    Type: List<AWS::EC2::AvailabilityZone::Name>

enter image description here

在Terraform中可以做什么来模拟这种行为(基于给定值列表的预定义值)?

1 个答案:

答案 0 :(得分:3)

Terraform中此CloudFormation功能最直接的类似物是Input Variables,它使您可以定义与CloudFormation中的内容基本相同的内容:

variable "availability_zone" {
  type        = list(string)
  description = "List of Availability Zones to use for the subnets in the VPC. Note: The logical order is preserved."
}

与CloudFormation相比,一个区别是Terraform没有“可用区名称”的一流类型,因此包含该名称的字符串就是AWS提供程序对可用区的典型表示方式。

我不确定您要问的是什么,但我想您也在询问截屏的特定CloudFormation UI,该UI本身了解可用区的概念,因此它可以提供额外的帮助,例如自动补全。 Terraform模块的输入变量通常是通过代码配置的,而不是通过Web UI进行配置的,因此Terraform中没有与CloudFormation功能直接相关的东西。