2017-10-15 15 views
0

J'essaie de récupérer ServiceTag (s) pour un nœud donné depuis l'API de consul. J'ai besoin de filtrer jq.Récupérer des balises de service pour un nœud donné depuis l'API consul avec jq

Voici la requête de lecture JQ pour le nœud & balise de service, mais je veux servicetag pour un noeud donné ..

avec l'étiquette de service - https://jqplay.org/s/iaSIPnkxFm

Avec nœud - https://jqplay.org/s/ea-LyKhhpy

Quelqu'un peut-il s'il vous plaît aider moi avec jq query pour combiner les deux pour donner le tag de service "my-app-tag" pour le noeud "my-app-1-2-3-4" dans l'exemple ci-dessus.

Répondre

1

Malheureusement, les données fournies, la description du problème donné et la réponse donnée ne sont pas tout à fait d'accord entre elles, peut-être à cause d'une faute de frappe.

Cependant, la description du problème correspond à une requête de la forme:

[] chèques [] |.. sélectionnez (.Node == $ NODE) ​​| .ServiceTags []

Par exemple, avec vos données, et de laisser NODE $ ont la valeur "my-ap-1-2-3-4", la requête JQ:

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

rendements:

"my-app-tag"