Краткое руководство. Запуск первого запроса Resource Graph с помощью REST API

Чтобы начать использовать Azure Resource Graph с REST API, нужно сначала проверить, есть ли у вас средство для вызова интерфейсов REST API. Затем по инструкциям из этого краткого руководства вы выполните запрос и получите результаты, вызвав конечную точку REST API Azure Resource Graph.

По завершении у вас будут средства для вызова конечных точек REST API и результат выполнения первого запроса к Resource Graph.

Необходимые компоненты

Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.

Azure Cloud Shell

В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.

Начало работы с Azure Cloud Shell

Вариант Пример и ссылка
Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. При нажатии кнопки Попробовать код или команда не копируется в Cloud Shell автоматически. Screenshot that shows an example of Try It for Azure Cloud Shell.
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. Button to launch Azure Cloud Shell.
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. Screenshot that shows the Cloud Shell button in the Azure portal

Чтобы использовать Azure Cloud Shell, выполните следующие действия:

  1. Запустите Cloud Shell.

  2. Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.

  3. Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.

  4. Нажмите клавишу ВВОД, чтобы запустить код или команду.

Начало работы с REST API

Если у вас нет опыта работы с интерфейсом REST API, сначала ознакомьтесь со справочником по REST API Azure, чтобы получить общее представление о нем, в частности об URI запроса и тексте запроса. Это нужно для работы с Azure Resource Graph, поэтому предполагается, что у вас есть соответствующие практические навыки. Начинающим рекомендуется применять такие средства, как ARMClient, обеспечивающие автоматическую авторизацию.

Спецификации Azure Resource Graph см. в статье REST API Azure Resource Graph.

REST API и PowerShell

Если у вас еще нет средства для выполнения вызовов REST API, рекомендуем использовать среду PowerShell. Следующий пример кода возвращает заголовок для аутентификации в Azure. Создайте заголовок проверки подлинности, иногда называемый токеном носителя, и укажите универсальный код ресурса (URI) REST API, к которому нужно подключиться, а также параметры или текст запроса.

# Log in first with Connect-AzAccount if not using Cloud Shell

$azContext = Get-AzContext
$azProfile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile
$profileClient = New-Object -TypeName Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient -ArgumentList ($azProfile)
$token = $profileClient.AcquireAccessToken($azContext.Subscription.TenantId)
$authHeader = @{
    'Content-Type'='application/json'
    'Authorization'='Bearer ' + $token.AccessToken
}

# Invoke the REST API
$restUri = "https://management.azure.com/subscriptions/$($azContext.Subscription.Id)?api-version=2020-01-01"
$response = Invoke-RestMethod -Uri $restUri -Method Get -Headers $authHeader

Переменная $response содержит результат выполнения командлета Invoke-RestMethod, который может быть проанализирован с помощью таких командлетов, как ConvertFrom-Json. Если конечная точка службы REST API требует текста запроса, укажите переменную в формате JSON в качестве значения параметра -Body командлета Invoke-RestMethod.

Выполните первый запрос график ресурсов

Теперь, когда средства REST API добавлены в вашу среду, попробуем выполнить простой запрос к Resource Graph на основе подписки. Запрос возвращает первые пять ресурсов Azure с указанными значениями Имя и Тип ресурса для каждого ресурса. Чтобы выполнить запрос по группе управления, используйте managementgroups вместо subscriptions. Чтобы выполнить запрос ко всему арендатору, исключите свойства managementgroups и subscriptions из текста запроса.

В тексте запроса каждого вызова REST API используется переменная, которую необходимо заменить собственным значением:

  • {subscriptionID} — замените это значение идентификатором своей подписки.
  1. Выполните первый запрос к Azure Resource Graph с помощью REST API и конечной точки resources:

    • Универсальный код ресурса (URI) REST API

      POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2021-03-01
      
    • Текст запроса

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

    Примечание.

    Так как этот пример запроса не содержит модификатор сортировки, такой как order by, повторное выполнение запроса может каждый раз возвращать разные наборы ресурсов.

  2. Обновите запрос к конечной точке resouces и измените query для упорядочивания (order by) по свойству Name:

    • Универсальный код ресурса (URI) REST API

      POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2021-03-01
      
    • Текст запроса

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

    Примечание.

    Как и с первым запросом, выполнение этого запроса несколько раз может получить различные наборы ресурсов для каждого запроса. Важен порядок команд запроса. В этом примере order by следует после limit. Эта последовательность команд сначала ограничивает результаты запроса, а затем упорядочивает их.

  3. Обновите вызов к конечной точкеresources, чтобы изменить query для упорядочивания (order by) по свойству Name и ограничения (limit) вывода пятью первыми результатами:

    • Универсальный код ресурса (URI) REST API

      POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2021-03-01
      
    • Текст запроса

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

Повторные выполнения последней версии запроса, если ничего не изменяется в самой среде, возвращают стабильные результаты, отсортированные по свойству Name и ограниченные пятью первыми результатами.

Дополнительные примеры вызовов REST API к Azure Resource Graph см. в разделе Примеры.

Очистка ресурсов

REST API не содержит библиотеки или модули для удаления. Если вы установили средство, например ARMClient для выполнения вызовов и больше не нуждаетесь в нем, вы можете удалить это средство.

Следующие шаги

Из этого краткого руководства вы узнали, как вызвать конечную точку REST API Resource Graph и выполнить первый запрос. Чтобы узнать больше о языке Resource Graph, перейдите на страницу сведений о языке запросов.