2017-03-10 2 views
0

Pour le JSON ci-dessous, essayez d'obtenir la liste des emplacements pour un type de ressource spécifique.Azure CLI jmespath query

Cette commande: Liste des fournisseurs az --query "[? Namespace == 'Microsoft.Compute']" Donne-moi l'exemple de sortie (trop pour tout inclure) à la fin. Comment puis-je effectuer une requête pour des types de ressources spécifiques? J'ai essayé ce qui suit, mais cela ne fonctionne pas: Liste des fournisseurs az --query "[? Contient (espace de noms, 'Microsoft.Compute')] | [contient (type_ressource, 'virtualmachines']"

[ { "id": "/subscriptions/fed7f475-6055-4e3c-8529-c1345df70589/providers/Microsoft.Compute", "espace de noms": "Microsoft.Compute", "registrationState": "Enregistré", « resourceTypes ": [{ "alias": null, "apiVersions": [ "30/03/2017", "30/08/2016", "30/04/2016-preview", " 2016 -03-30 ", " 2015-06-15" , "01/05/2015-preview" ], "emplacements": [ "Est des États-Unis", "Est des États-Unis 2", "Ouest américain", "Central US" , "US North Central", "South Central US", "L'Europe du Nord", "Europe occidentale", "Asie de l'Est", "Asie du Sud-Est", "est du Japon", "West Japan" , "Australia East", "Australie Sud-Est", "Brésil Sud", "Sud de l'Inde", "Inde Centrale", "West India", "Le Canada central", "Le Canada est", "Ouest américain 2", "Ouest américain Central", "UK Sud", "UK West", "Corée centrale", "Corée du Sud" ], "propriétés": null, "resourceType": "availabilitySets" }, } ]

Répondre

0

Cela devrait fonctionner:

az provider list --query "[?namespace=='Microsoft.Compute'].resourceTypes[].{resourceType:resourceType, locations:locations} | [?resourceType=='virtualMachines'] | [0].locations" 

Je ne prétends pas que c'est le le plus simple façon de le faire - J'apprends toujours jmespath moi-même :)