Home:ALL Converter>how to lookup availability zone name from availability zone id?

how to lookup availability zone name from availability zone id?

Ask Time:2019-04-17T03:37:33         Author:Chris Snow

Json Formatter

In some places in my tf file, I am providing an availability_zone_id. E.g.

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
}

... and in the my.tfvars file:

az_id              = "euw2-az1"

In other places, I need to provide an availablity_zone name. E.g.

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

Is there a way in terraform to lookup the availability zone name from the availability zone id?

Author:Chris Snow,eproduced under the CC 4.0 BY-SA copyright license with a link to the original source and this disclaimer.
Link to original article:https://stackoverflow.com/questions/55715503/how-to-lookup-availability-zone-name-from-availability-zone-id
Chris Snow :

I fixed this by creating a variable az and removing the az_id\n\naz = \"eu-west-2a\"\n\n\n... and adding a data element\n\ndata \"aws_availability_zone\" \"main\" {\n name = \"${var.az}\"\n}\n\nresource \"aws_subnet\" \"main\" { \n ... \n availability_zone_id = \"${data.aws_availability_zone.main.zone_id}\" \n ... \n} \n\nresource \"aws_ebs_volume\" \"controller-ebs-sdb\" {\n availability_zone = \"${var.az}\"\n ...\n}\n",
2019-04-17T04:53:40
yy