对于下面的JSON,尝试获取特定resourceType的位置列表。
此命令: az提供者列表 - 查询" [?namespace ==' Microsoft.Compute']"最后给出了示例输出(包含所有内容的过多)。然后,我如何查询特定的资源类型?我尝试了以下方法,但它不起作用:az提供者列表 - 查询" [?包含(命名空间,' Microsoft.Compute')] | [?contains(resourceType,' virtualMachines']"
[ { " id":" /subscriptions/fed7f475-6055-4e3c-8529-c1345df70589/providers/Microsoft.Compute", " namespace":" Microsoft.Compute", " registrationState":"已注册", " resourceTypes":[ { "别名":null, " apiVersions":[ " 2017年3月30日&#34 ;, " 2016年8月30日&#34 ;, "二零一六年四月三十零日预览&#34 ;, " 2016年3月30日&#34 ;, " 2015年6月15日&#34 ;, " 2015年5月1日预览" ] "地点":[ "东美", "东美2", "美国西部", "美国中部", "美国中北部", "美国中南部", "北欧", "西欧", "东亚", "东南亚", "日本东部", " Japan West", "澳大利亚东部", "澳大利亚东南部", "巴西南部", "南印度", "印度中部", "西印度", " Canada Central", " Canada East", "美国西部2", "美国中西部", "英国南部", "英国西部", " Korea Central", "韩国南部" ] "属性":null, " resourceType":" availabilitySets" }, } ]
答案 0 :(得分:1)
这应该有效:
az provider list --query "[?namespace=='Microsoft.Compute'].resourceTypes[].{resourceType:resourceType, locations:locations} | [?resourceType=='virtualMachines'] | [0].locations"
我没有声称这是最简单的方式 - 我自己还在学习jmespath:)