使用 jq 从 consul API 检索给定节点的服务标签

Retrieve service tags for a given node from consul API with jq

我正在尝试从 consul API 检索给定节点的 ServiceTag。我需要通过jq过滤。

这是节点和服务标签的 jq 播放查询,但我想要给定节点的服务标签..

有服务标签 - https://jqplay.org/s/iaSIPnkxFm

有节点 - https://jqplay.org/s/ea-LyKhhpy

任何人都可以帮助我进行 jq 查询,将两者结合起来,为上例中的节点 "my-app-1-2-3-4" 提供服务标签 "my-app-tag"。

很遗憾,给定的数据、给定的问题描述和给定的答案彼此不太一致,可能是因为打字错误。

但是,问题描述对应于以下形式的查询:

.[].支票[] | select(.Node == $NODE) | .ServiceTags[]

例如,对于您的数据,让 $NODE 的值为 "my-ap-1-2-3-4",jq 查询:

.[].Checks[] | select(.Node == "my-ap-1-2-3-4") | .ServiceTags[]

产量:

"my-app-tag"