小编mzs*_*_47的帖子

在 Terraform 中迭代列表或元素集的问题

我正在尝试在子网 ID 列表上使用计数变量在跨可用区创建的不同子网中启动 AWS 实例,但它失败并显示不同方法的错误消息。

我试过使用 element() 和 [count.index],我使用的是 TF v12。

下面是代码片段,请忽略带有#(commented) 的行。

resource "aws_instance" "workers" {
#count         =   length(data.terraform_remote_state.network.outputs.public_subnet_list)
count         = length(data.aws_subnet_ids.subnet_list.ids)
instance_type = var.worker_instance_type
ami           = var.k8_ami
key_name      = aws_key_pair.ssh_key.key_name
#subnet_id     = "${data.terraform_remote_state.network.outputs.public_subnet_list[count.index]}"
subnet_id = "${element(data.aws_subnet_ids.subnet_list.ids, count.index)}"
vpc_security_group_ids = [
aws_security_group.kubernetes.id
]
}
Run Code Online (Sandbox Code Playgroud)

下面是两个错误片段。

Error: Invalid index

on k8-cluster.tf line 85, in resource "aws_instance" "workers":
85:   subnet_id = "${data.aws_subnet_ids.subnet_list.ids[count.index]}"
|----------------
| count.index is 2
| data.aws_subnet_ids.subnet_list.ids is set of string with 4 elements

This value does not have …
Run Code Online (Sandbox Code Playgroud)

element list count terraform

4
推荐指数
2
解决办法
7688
查看次数

标签 统计

count ×1

element ×1

list ×1

terraform ×1