gpt4 book ai didi

amazon-web-services - 在 for_each 中访问映射的索引

转载 作者:行者123 更新时间:2023-12-02 02:00:00 25 4
gpt4 key购买 nike

我有一张像这样的 map

variable "mysubnets" {
type = map(string)
default = {
"subnet1" = "10.1.0.0/24"
"subnet2" = "10.1.1.0/24"
}
}

在我的模块中,我尝试将子网放置在同一 vpc 的不同可用区中

data "aws_availability_zones" "azs" {
state = "available"
}

resource "aws_subnet" "test-subnets" {
for_each = var.mysubnets
cidr_block = "${each.value}"
vpc_id = aws_vpc.myvpc.id
availability_zone = data.aws_availability_zones.azs.names[index("${each.value}")]

tags = {
Name = "${each.key}"
}
}

我可以从 map 中获取键和值,没有问题,但是当尝试选择可用区域时,我找不到如何更改值。有没有办法获取 map 的索引,或者为递增的数字创建一个计数器?

最佳答案

您的数据源名为 azs,而不是 available。所以应该是:

availability_zone = data.aws_availability_zones.azs.names[index("${each.value}")]

更新:

要将 indexvar.mysubnets 一起使用,您可以执行以下操作:

resource "aws_subnet" "test-subnets" {

for_each = {for idx, subnet in keys(var.mysubnets):
idx => {
name = subnet
cidr = var.mysubnets[subnet]
}
}

cidr_block = each.value.cidr
vpc_id = aws_vpc.myvpc.id

availability_zone = element(data.aws_availability_zones.azs.names, each.key)

tags = {
Name = each.value.name
}
}

关于amazon-web-services - 在 for_each 中访问映射的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69100843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com