首页 > 解决方案 > 使用变量中定义的键对本地地图进行 Terraform 插值

问题描述

使用变量中定义的键对本地地图进行 Terraform 插值

目标:在变量中定义预设尺寸标签,资源供应使用本地地图中的预设值。


var "define_size" {
  description = "Select either small, medium, large"
  default = "large"
}


locals {

  small = {
    volume_gb = 1
    volume_count = 1
  }

  medium = {
    volume_gb = 20
    volume_count = 5
  }

  large = {
    volume_gb = 500
    volume_count = 10
  }

}


resource "aws_ebs_volume" "example" {
  availability_zone = var.availability_zone
  size              = ??????
}

尝试:

标签: terraformterraform-provider-aws

解决方案


如果您想要基于键的访问,您应该使locals定义与键一起使用,例如map

locals {
  sizes = {
    small = {
      volume_gb = 1
      volume_count = 1
    }
    medium = {
      volume_gb = 20
      volume_count = 5
    }
    large = {
      volume_gb = 500
      volume_count = 10
    }
  }
}

然后使用local.sizes[var.define_size].volume_gb


推荐阅读