在资源名称中使用count.index的Terraform

时间:2018-08-16 17:55:13

标签: terraform

使用Terraform我试图使用count.index在我的资源名称中包含计数,但是无法显示该计数。我基本上是想将计数添加到资源名称中,以便可以找到资源,否则资源是未知的。

count = 3    
autoscaling_group_name = "${aws_autoscaling_group.exampleautoscaling-("count.index")-example.name}"

错误

resource variables must be three parts: TYPE.NAME.ATTR in:

expected is : exampleautoscaling-1-example.name,exampleautoscaling-2-example.name,exampleautoscaling-3-example.name

2 个答案:

答案 0 :(得分:2)

我的建议是添加标签并使用name_prefix参数。但是针对您的问题

以下是文档中的一些摘要,您可以尝试

"${var.hostnames[count.index]}"

OR

resource "aws_instance" "web" {
  # ...

  count = "${var.count}"

  # Tag the instance with a counter starting at 1, ie. web-001
  tags {
    Name = "${format("web-%03d", count.index + 1)}"
  }
}

提供链接here。在“数学”部分下查看。

答案 1 :(得分:1)

您的语法不正确。您试图将count插入资源名称的中间。您需要将其更改为以下内容:

const String XML = @"
    <MyExample>
        <BooleanField>T</BooleanField>
    </MyExample>";

using (var stringReader = new StringReader(XML))
using (var xmlReader = new CustomXmlReader(new List<String> { "BooleanField" }, stringReader))
{
    XmlSerializer serializer = new XmlSerializer(typeof(MyExample));
    MyExample mx = serializer.Deserialize(xmlReader) as MyExample;
    Console.WriteLine(mx.BooleanFieldString); // True
}