gpt4 book ai didi

amazon-web-services - 如何在 Terraform 中迭代 'count' 资源?

转载 作者:行者123 更新时间:2023-12-05 01:59:43 27 4
gpt4 key购买 nike

在此示例中,我尝试创建 3 个 EC2 实例,每个实例都分配了一个弹性 IP。我想通过说以下内容来实现这一目标。

resource "aws_instance" "web_servers" {
ami = "ami-09e67e426f25ce0d7"
instance_type = "t3.micro"
...
count = 3
}

并且,连同其他网络实例,

resource "aws_eip" "elastic_ip" {
for_each = aws_instance.web_servers
instance = each.key
vpc = true
}

但是,这是在说以下内容:

The given "for_each" argument value is unsuitable: the "for_each" argument must be a map, or set of strings, and you have provided a value of type tuple.

我已经尝试将 for_each 包装在 toset() 中,这也表示存在未知数量的问题 - 虽然我知道有 3 个。我在 countfor_each 关键字周围遗漏了什么吗?

最佳答案

如果你真的想使用for_each,而不是再次计数,它应该是:

resource "aws_eip" "elastic_ip" {
for_each = {for idx, val in aws_instance.web_servers: idx => val}
instance = each.value.id
vpc = true
}

但由于您首先使用的是 count,因此最好也为您的 aws_eip 使用 count:

resource "aws_eip" "elastic_ip" {
count = length(aws_instance.web_servers)
instance = aws_instance.web_servers[count.index].id
vpc = true
}

关于amazon-web-services - 如何在 Terraform 中迭代 'count' 资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67652383/

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