2016-08-16 2 views
0

Azure 리소스 관리자 API를 사용하여 리소스를 검색하려고했습니다. 쿼리 문자열에 지정된Azure Resource Manager 리소스가있는 InvalidFilter API

GET /subscriptions/xxx/resources?$filter=startswith(name,%20'web')&api-version=2015-01-01 

잘못된 $ 필터 'startswith(name, 'web')' : 우선이 시도. 세부 정보 : '지원되지 않는 필터 함수가 발견되었습니다 :'startswith '. 속성 이름 : '이름'. 지원되는 기능 : 그럼 난이 시도

'substringof' ': 쿼리 문자열에 지정된

GET /subscriptions/xxx/resources?$filter=substringof('web',%20name)%20eq%20true&api-version=2015-01-01 

잘못된 $ 필터 'substringof('web', name) eq true'. 세부 정보 : '$ filter 문자열에 지원되지 않는 토큰이 있습니다.'

저는 OData 전문가가 아니므로 구문이 잘못되었거나이 API에서 실제로 지원되지 않는 작업을 수행하려고하는지 확신 할 수 없습니다.

+0

OData v2 및 v3 사양을 선택하면 구문이 정상적으로 보입니다. OData v4는 조금 다르며 기능은 부분 문자열이라고합니다. substringof가 어쨌든 boolean을 반환해야하기 때문에 무의미한 것이므로 * eq true *를 생략 해 주시겠습니까? – juunas

+0

@juunas 그래, * eq true * 였고, Find-AzureRmResource -ResourceNameContains' PowerShell 명령의 흔적을 찾아 냈습니다. – BenV

답변

0

쿼리해야합니다 :

GET /subscriptions/xxx/resources?$filter=substringof('web',%20name)&api-version=2015-01-01 

는 EQ 사실 알아 둡니다. v2 및 v3 odata 프로토콜의 공식 예제로 볼 수 있지만 Azure API는이를 지원하지 않습니다.

관련 문제