빠른 시작: Azure PowerShell을 사용하여 Resource Graph 쿼리 실행

이 빠른 시작에서는 Azure PowerShell용 Az.ResourceGraph 모듈을 사용하여 Azure Resource Graph 쿼리를 실행하는 방법을 설명합니다. 이 문서에서는 쿼리 결과를 정렬(정렬)하고 제한하는 방법도 보여 줍니다. 테넌트, 관리 그룹 또는 구독의 리소스에 대한 쿼리를 실행할 수 있습니다. 완료되면 모듈을 제거할 수 있습니다.

필수 조건

모듈 설치

Azure PowerShell을 사용하여 Azure Resource Graph 쿼리를 실행할 수 있도록 Az.ResourceGraph 모듈을 설치합니다. Azure Resource Graph 모듈에는 PowerShellGet 버전 2.0.1 이상이 필요합니다. 최신 버전의 PowerShell 및 Azure PowerShell을 설치한 경우 필요한 버전이 이미 설치되어 있는 것입니다.

  1. PowerShellGet 버전을 확인합니다.

    Get-Module -Name PowerShellGet
    

    업데이트해야 하는 경우 PowerShellGet으로 이동합니다.

  2. 모듈 설치:

    Install-Module -Name Az.ResourceGraph -Repository PSGallery -Scope CurrentUser
    

    이 명령은 CurrentUser 범위에 모듈을 설치합니다. AllUsers 범위에 설치해야 하는 경우 관리 PowerShell 세션에서 설치를 실행합니다.

  3. 모듈이 설치되었는지 확인합니다.

    Get-Command -Module Az.ResourceGraph -CommandType Cmdlet
    

    이 명령은 Search-AzGraph cmdlet 버전을 표시하고 모듈을 PowerShell 세션에 로드합니다.

Azure에 연결

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

Connect-AzAccount

# Run these commands if you have multiple subscriptions
Get-AzSubScription
Set-AzContext -Subscription <subscriptionID>

쿼리 실행

모듈이 환경에 추가된 후 테넌트 기반 쿼리를 실행할 수 있습니다. 이 예의 쿼리는 각 리소스의 nametype이 포함된 5개의 Azure 리소스를 반환합니다. 관리 그룹 또는 구독별로 쿼리하려면 -ManagementGroup 또는 -Subscription 매개 변수를 사용합니다.

  1. Search-AzGraph cmdlet을 사용하여 Azure Resource Graph 쿼리를 실행합니다.

    Search-AzGraph -Query 'Resources | project name, type | limit 5'
    

    이 쿼리 예에서는 order by와 같은 정렬 한정자를 사용하지 않습니다. 쿼리를 여러 번 실행하면 각 요청에 대해 서로 다른 리소스 집합이 생성될 수 있습니다.

  2. name 속성을 기준으로 정렬(order by)하도록 쿼리를 업데이트합니다.

    Search-AzGraph -Query 'Resources | project name, type | limit 5 | order by name asc'
    

    이전 쿼리와 마찬가지로 이 쿼리를 여러 번 실행하면 각 요청에 대해 서로 다른 리소스 집합이 생성될 수 있습니다. 쿼리 명령의 순서는 중요합니다. 이 예에서 order bylimit 뒤에 옵니다. 쿼리는 결과를 5개의 리소스로 제한한 다음 해당 결과를 이름별로 정렬합니다.

  3. name 속성을 기준으로 정렬(order by)하도록 쿼리를 업데이트한 후 출력을 5개 결과로 제한(limit)합니다.

    Search-AzGraph -Query 'Resources | project name, type | order by name asc | limit 5'
    

    환경을 변경하지 않고 이 쿼리를 여러 번 실행하면 결과는 일관되고 name 속성에 따라 정렬되지만 결과는 여전히 5개로 제한됩니다. 쿼리는 결과를 이름별로 정렬한 다음 출력을 5개의 리소스로 제한합니다.

사용자에게 액세스 권한이 이미 있는 구독에서 쿼리가 결과를 반환하지 않는 경우 Search-AzGraph cmdlet이 기본 컨텍스트에서 구독으로 기본 설정됨을 유의하세요. 기본 컨텍스트의 일부인 구독 ID 목록을 보려면 다음을 실행합니다. (Get-AzContext).Account.ExtendedProperties.Subscriptions 액세스 권한이 있는 모든 구독을 검색하려면 $PSDefaultParameterValues=@{"Search-AzGraph:Subscription"= $(Get-AzSubscription).ID}를 실행하여 Search-AzGraph cmdlet에 대해 PSDefaultParameterValues를 설정합니다.

리소스 정리

PowerShell 세션에서 Az.ResourceGraph 모듈을 제거하려면 다음 명령을 실행합니다.

Remove-Module -Name Az.ResourceGraph

컴퓨터에서 Az.ResourceGraph 모듈을 제거하려면 다음 명령을 실행합니다.

Uninstall-Module -Name Az.ResourceGraph

Az.ResourceGraph 모듈이 현재 사용 중입니다라는 메시지가 표시될 수 있습니다. 그렇다면 PowerShell 세션을 종료하고 새 세션을 시작해야 합니다. 그런 다음 명령을 실행하여 컴퓨터에서 모듈을 제거합니다.

Azure PowerShell 세션에서 로그아웃하려면 다음을 수행합니다.

Disconnect-AzAccount

다음 단계

이 빠른 시작에서는 Azure PowerShell 환경에 Resource Graph 모듈을 추가하고 쿼리를 실행했습니다. 자세히 알아보려면 쿼리 언어 세부 정보 페이지로 이동합니다.