无法使用领事模板读取服务元

时间:2018-10-11 20:07:45

标签: consul consul-template

我在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或集群吗?

1 个答案:

答案 0 :(得分:0)

要使用元映射中的键:值对,您需要使用index。此外,服务上的元映射称为.ServiceMeta

例如,要在Meta中获取键acl的值,您可以使用:

{{index .ServiceMeta "acl"}}