我正在尝试在子网 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)