如何从可用区 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"
}         

有没有办法在地形中从可用区 ID 中查找可用区名称?

我通过创建一个变量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}"
...
}

另一种方法是获取该区域支持的可用性区域,然后使用索引。那么这个索引可以。

例:

数据 "aws_availability_zones" "available_az" {}

然后在您的资源上使用以下索引。如果您想使用第一个可用区,请使用索引 0。如果您想使用第二个可用区,请使用索引 1。

availability_zone = "${element(data.aws_availability_zones.available_az.names, 0)}">

相关内容

  • 没有找到相关文章

最新更新