【发布时间】:2019-10-15 17:54:22
【问题描述】:
我正在尝试在跨 AZ 创建的不同子网中启动 AWS 实例,使用 count 变量对子网 ID 列表进行操作,但使用不同的方法会失败并显示错误消息。
我尝试过使用 element() 和 [count.index],我使用的是 TF v12。
以下是sn-p的代码,请忽略带#(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
]
}
下面是两个错误sn-ps。
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 any indices.
element() 的另一个错误:
Error: Error in function call
on k8-cluster.tf line 85, in resource "aws_instance" "workers":
85: subnet_id = "${element(data.aws_subnet_ids.subnet_list.ids, count.index)}"
|----------------
| count.index is 3
| data.aws_subnet_ids.subnet_list.ids is set of string with 4 elements
Call to function "element" failed: cannot read elements from set of string.
【问题讨论】:
标签: list count element terraform