다음을 통해 공유


빠른 시작: REST API를 사용하여 Resource Graph 쿼리 실행

이 빠른 시작에서는 REST API를 사용하여 Azure Resource Graph 쿼리를 실행하고 결과를 보는 방법을 설명합니다. REST API 요소는 API 버전과 쿼리가 포함된 요청 본문을 포함하는 URI입니다. 예에서는 Azure CLI를 사용하여 Azure에 로그인하고 az rest 명령을 실행하기 위해 계정을 인증합니다.

REST API에 대해 잘 모르는 경우에는 REST API에 대한 일반적인 이해, 특히 요청 URI 및 요청 본문에 대한 일반적인 이해가 가능하도록 Azure REST API 참조를 검토하는 단계부터 시작합니다. Azure Resource Graph 사양은 Azure Resource Graph REST API를 참조하세요.

필수 조건

Azure에 연결

Visual Studio Code 터미널 세션에서 Azure에 연결합니다. 구독이 두 개 이상인 경우 명령을 실행하여 구독에 대한 컨텍스트를 설정합니다. {subscriptionID} 를 Azure 구독 ID로 바꿉니다.

az login

# Run these commands if you have multiple subscriptions
az account list --output table
az account set --subscription {subscriptionID}

이 예에서 Azure CLI az Rest 명령을 사용하므로 PowerShell을 사용하는 경우에도 az login을 사용합니다.

REST API 구문 검토

REST API 명령을 실행하는 데는 REST API URI와 요청 본문이라는 두 가지 요소가 있습니다. 자세한 내용을 보려면 리소스로 이동합니다. 관리 그룹별로 쿼리하려면 subscriptions 대신 managementGroups를 사용하세요. 전체 테넌트를 쿼리하려면 요청 본문에서 managementGroupssubscriptions 속성을 모두 생략합니다.

다음 예에서는 Azure 구독에 대한 쿼리를 실행하기 위한 REST API URI 구문을 보여 줍니다.

POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2022-10-01

REST API로 쿼리를 실행하려면 요청 본문이 필요합니다. 다음 예에서는 요청 본문 파일을 만드는 JSON입니다.

{
  "subscriptions": [
    "{subscriptionID}"
  ],
  "query": "Resources | project name, type | limit 5"
}

Resource Graph 쿼리 실행

예에서는 동일한 az rest 명령을 사용하지만 요청 본문을 변경하여 다른 결과를 가져옵니다. 예에서는 리소스를 나열하고, name 속성을 기준으로 리소스를 정렬하고, name 속성을 기준으로 리소스를 정렬하고 결과 수를 제한합니다.

모든 쿼리 예를 실행하려면 셸 환경에 대해 다음 az rest 명령을 사용합니다.

az rest --method post --uri https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2022-10-01 --body `@request-body.json

PowerShell에서 요청 본문의 파일 이름을 지정하기 위해 at sign(@)를 이스케이프하려면 백틱(`)이 필요합니다.

각 요청 본문 예에서 {subscriptionID}를 Azure 구독 ID로 바꿉니다. 다음 명령을 실행하여 요청 본문에 대한 Azure 구독 ID를 가져옵니다.

az account show --query id --output tsv

리소스 나열

Visual Studio Code에서 request-body.json이라는 새 파일을 만듭니다. 다음 JSON을 복사하여 파일에 붙여넣고 파일을 저장합니다.

쿼리는 각 리소스의 nameresource type과 함께 5개의 Azure 리소스를 반환합니다.

{
  "subscriptions": [
    "{subscriptionID}"
  ],
  "query": "Resources | project name, type | limit 5"
}

이 쿼리 예는 order by와 같은 정렬 한정자를 제공하지 않기 때문에 이 쿼리를 여러 번 실행하면 요청별로 다른 리소스 집합이 생성됩니다.

이름 속성으로 정렬

쿼리를 order by name 속성으로 변경하는 다음 코드로 request-body.json을 업데이트합니다. 파일을 저장하고 az rest 명령을 사용하여 쿼리를 실행합니다.

{
  "subscriptions": [
    "{subscriptionID}"
  ],
  "query": "Resources | project name, type | limit 5 | order by name asc"
}

이 쿼리를 여러 번 실행하면 요청마다 다른 리소스 집합이 생성됩니다.

쿼리 명령의 순서는 중요합니다. 이 예에서 order bylimit 뒤에 옵니다. 이 명령 순서는 쿼리 결과를 5개의 리소스로 제한한 다음 순서를 지정합니다.

이름 속성별로 정렬하고 결과 제한

다음 코드로 request-body.jsonorder by name 속성으로 업데이트한 다음 상위 5개 결과로 limit를 업데이트합니다. 파일을 저장하고 동일한 az rest 명령을 사용하여 쿼리를 실행합니다.

{
  "subscriptions": [
    "{subscriptionID}"
  ],
  "query": "Resources | project name, type | order by name asc | limit 5"
}

사용자 환경에 변경된 사항이 없다고 가정하고 쿼리가 여러 번 실행되는 경우 반환되는 결과는 일관되고 name 속성에 따라 정렬되지만 상위 5개 결과로 제한됩니다.

리소스 정리

Azure CLI 세션에서 로그아웃

az logout

다음 단계

이 빠른 시작에서는 Azure Resource Graph REST API 엔드포인트를 사용하여 쿼리를 실행했습니다. 리소스 그래프 언어에 대한 자세한 내용을 보려면 쿼리 언어 정보 페이지로 이동하세요.