无法使用consul-template读取Service Meta

问题描述 投票:2回答:1

我在Consul注册了一个测试服务,其服务定义如下:

{
  "name": "web",
  "tags": ["web1"],
  "address": "example.com",
  "meta": {
    "meta": "cluster",
    "acl": "host_test",
    "cluster": "test_cluster"
  },
  "port": 8000
}

我想使用consul-template将该信息加载到HAProxy配置中。我可以按照文档中的说明获取地址和端口:

{{ range service "web" }}{{if in .Tags "web1"}}
    server {{.Node}} {{ .Address }}:{{.Port}} cookie A check
    {{ end }}{{end}}

但我似乎无法获得元信息。我以为我可以在服务范围内使用类似的东西访问它:

 {{range .Meta}}
  {{.}}{{end}}

知道如何从meta中获取acl或群集吗?

consul consul-template
1个回答
0
投票

要使用Meta地图中的键:值对,您需要使用index。此外,服务上的Meta地图称为.ServiceMeta

因此,例如,要获得Meta中的密钥acl的值,您将使用:

{{index .ServiceMeta "acl"}}
© www.soinside.com 2019 - 2024. All rights reserved.