2017-03-10 4 views
0

아래의 JSON에 대해 특정 resourceType에 대한 위치 목록을 얻으려고 시도합니다.Azure CLI jmespath query

이 명령은 다음과 같습니다. az 공급자 목록 --query "[? namespace == 'Microsoft.Compute']"끝에 출력하는 예제가 너무 많습니다. 그런 다음 특정 자원 유형을 어떻게 쿼리합니까? 다음을 시도했지만 작동하지 않습니다. az 공급자 목록 --query "[? contains (namespace, 'Microsoft.Compute')] | [contains contains (resourceType, 'virtualMachines']"

[ { "ID": "/subscriptions/fed7f475-6055-4e3c-8529-c1345df70589/providers/Microsoft.Compute" "네임 스페이스": "Microsoft.Compute" "registrationState": "등록", "의 ResourceTypes "[ { "별칭 "널 (null), "apiVersions "[ "2017년 3월 30일 " "2016년 8월 30일 " "2016년 4월 30일 - 미리보기 ", "2016 -03-30 ", " 2015년 6월 15일 " "2015년 5월 1일 - 미리보기 " , "위치 "[ "이스트 US ", "이스트 미국이 " "웨스트 US ", "미국 중부 " , "미국 중북부" "미국 중남부" "북유럽" "서유럽" "동아시아", "동남 아시아", "일본 동쪽", "일본 서" , "호주 동부", "호주 남동부", "브라질 남부", "남인도", "중부 인도", "서쪽 인도", "캐나다 중앙", "캐나다 동쪽", "웨스트 미국이" "미국 중서부" "영국 사우스" "영국 웨스트" "한국 중앙", "한국" , "속성"널 (null), "resourceType에서": "availabilitySets" }, } ]

답변

0

이 작동합니다 :

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

나는 이라는 간단한 주장을하지 않고있다. 나는 여전히 jmespath를 배우고있다. :)