我在Consul注册了一个具有以下服务定义的测试服务:
{
"name": "web",
"tags": ["web1"],
"address": "example.com",
"meta": {
"meta": "cluster",
"acl": "host_test",
"cluster": "test_cluster"
},
"port": 8000
}
我想使用领事模板将该信息加载到HAProxy配置中。我可以按照文档中的说明获取地址和端口:
{{ range service "web" }}{{if in .Tags "web1"}}
server {{.Node}} {{ .Address }}:{{.Port}} cookie A check
{{ end }}{{end}}
但是我似乎无法获得元信息。我以为我可以在服务范围内使用类似的方法来访问它:
{{range .Meta}}
{{.}}{{end}}
有人知道如何从meta中获取acl或集群吗?
答案 0 :(得分:0)
要使用元映射中的键:值对,您需要使用index
。此外,服务上的元映射称为.ServiceMeta
。
例如,要在Meta中获取键acl
的值,您可以使用:
{{index .ServiceMeta "acl"}}