2017-03-10 44 views
0

對於下面的JSON,試圖獲取特定資源類型的位置列表。Azure CLI jmespath查詢

此命令: az提供程序列表--query「[?namespace =='Microsoft.Compute']」最後給出了示例輸出(太多以至於不包括全部)。我如何查詢特定的資源類型?我嘗試了以下方法,但它不起作用:z提供程序列表--query「[?contains(namespace,'Microsoft.Compute')] [[contains(resourceType,'virtualMachines']」

[ { 「id:」/subscriptions/fed7f475-6055-4e3c-8529-c1345df70589/providers/Microsoft.Compute「, 」namespace「:」Microsoft.Compute「, 」registrationState「:」Registered「, 」resourceTypes 「:[{ 」別名「:空, 」apiVersions「:[ 」2017年3月30日「, 」二零一六年八月三十零日「, 」2016年4月30日預覽「, 」 2016 -03-30「, 」 2015" 年6月15日, 「2015年5月1日 - 預覽」 ], 「位置」: 「東美」, 「東美2」, 「美國西部」, 「環美」 , 「北環美」, 「南環美」, 「北歐」, 「西歐」, 「東亞」, 「東南亞」, 「日本東」, 「日本西」 , 「澳大利亞東」, 「澳大利亞東南」, 「巴西南方」, 「南印度」, 「中央印度」, 「西印度」, 「加拿大中心」, 「加拿大東」, 「美國西部2」, 「西環美」, 「英國南」, 「英國西」, 「韓國中央」, 「韓國」 ], 「屬性」:空, 「resourceType爲」: 「availabilitySets」 }, } ]

回答

0

這應該工作:

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

我並沒有聲稱它是最簡單的這樣做 - 我仍然在學習jmespath :)