2017-03-10 9 views
0

Für den folgenden JSON-Versuch, die Liste der Speicherorte für einen bestimmten resourceType abzurufen.Azure-CLI-JMesspfad-Abfrage

Dieser Befehl: Eine Anbieterliste - Abfrage "[? Namespace == 'Microsoft.Compute']" Gibt mir die Beispielausgabe (zu viel, um alle einzuschließen) am Ende. Wie frage ich dann nach bestimmten Ressourcentypen? Ich habe Folgendes versucht, aber es funktioniert nicht: az Anbieterliste --abfrage "[? Enthält (Namespace, 'Microsoft.Compute')] | [? Enthält (resourceType, 'virtualMachines']" "

[ { "id": "/subscriptions/fed7f475-6055-4e3c-8529-c1345df70589/providers/Microsoft.Compute", "Namespace": "Microsoft.Compute", "registrationState": "Hier", „resource ": [{ "Aliase": null, "apiVersions": [ "2017.03.30", "2016.08.30", "2016.04.30-Vorschau", " 2016 -03-30 ", " 2015.06.15" , "2015.05.01-Vorschau" ], "locations": [ "East US", "East US 2", "West-US", "Zentral US" , "South Central US", "Nordeuropa", "west~~POS=TRUNC", "Ostasien", "Südostasien", "Japan East", "Japan Westen" "North Central US", , "Australia East", "Australien Südosten", "Brasilien Süd", "Südindien", "Zentralindien", "Westindien", "Canada Central", "Canada East", "West US 2", "West Central US", "UK Süd", "UK West" "Korea Central", "Südkorea" ], "Eigenschaften": null, "resource": "availabilitySets" }, } ]

Antwort

0

Dies sollte funktionieren:

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

Ich mache keine Ansprüche, dass es die einfachste Weg ist, es zu tun - ich lerne immer noch jmespath selbst :)