首页 > 解决方案 > 如何从可用区 id 查找可用区名称?

问题描述

在我的 tf 文件的某些地方,我提供了一个availability_zone_id. 例如

variable "az_id" { }

resource "aws_subnet" "main" {
  vpc_id     = "${aws_vpc.main.id}"
  cidr_block = "${var.subnet_cidr_block}"
  availability_zone_id = "${var.az_id}"
  map_public_ip_on_launch = true
}

...并在my.tfvars文件中:

az_id              = "euw2-az1"

在其他地方,我需要提供一个availablity_zone名称。例如

resource "aws_ebs_volume" "controller-ebs-sdb" { 
  availability_zone = "${var.az}"  
  size              = 1024 
  type              = "gp2"
}         

terraform 中有没有办法从可用区 ID 中查找可用区名称?

标签: terraform-provider-aws

解决方案


我通过创建一个变量az并删除az_id

az = "eu-west-2a"

...并添加数据元素

data "aws_availability_zone" "main" {
  name = "${var.az}"
}

resource "aws_subnet" "main" {                                          
  ...                          
  availability_zone_id = "${data.aws_availability_zone.main.zone_id}"   
  ...                                                                                                       
}  

resource "aws_ebs_volume" "controller-ebs-sdb" {
  availability_zone = "${var.az}"
  ...
}

推荐阅读