使用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
答案 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
}