Terraform中count.index未展开问题:EC2实例名称未按预期生成
Terraform count.index未展开问题解决
你的问题出在标签的字符串插值写法错误:count.index被当成了普通文本,没有被Terraform解析为变量值。
错误原因
原代码中Name = "${var.name_tag}[count.index]"里,[count.index]是字符串的固定部分,Terraform不会自动解析其中的count.index变量,所以最终标签会显示为VM[count.index]而非预期的VM0。
修复代码
把count.index也纳入插值表达式,修改后的tags块如下:
tags = { Name = "${var.name_tag}${count.index}" }
如果使用Terraform 0.12及以上版本,也可以用格式化函数让代码更清晰:
tags = { Name = format("%s%d", var.name_tag, count.index) }
效果验证
修改后执行terraform apply,当var.number_of_instances设为1时,EC2实例的名称会变成VM0(假设var.name_tag的值是VM),符合预期。
内容的提问来源于stack exchange,提问作者Dan
相关产品推荐
相关产品推荐

