在consul-template中,如何限制我所测量的元素数量?

时间:2016-09-20 16:17:36

标签: go consul consul-template

以下是使用服务呈现节点地址的代码:

    {{range "service@datacenter" "passing"}}{{.Address}} {{end}}

我想要做的是限制渲染的地址数量。例如,如果有5个节点注册为" service"的提供者,我想仅打印其中2个的地址。我认为我应该做的是切片数组,但我无法正确使用GO语法。这是我想要的,但在语法上不正确:

    {{range "service@datacenter" "passing" [0:2]}}{{.Address}} {{end}}

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

找到一个解决方案来限制可以使用consul-template呈现的数组元素的数量。

    {{$x := service "service@datacenter" "passing"}}{{range $index, $element := $x}}{{if lt $index 2}}{{$element.Address}},{{end}}{{end}}

range函数提供了一个索引变量以及可用于使用if块检查限制的数组元素。这里只会呈现两个地址。