Поделиться через


Устранение неполадок с помощью службы Azure Resource Graph

При запросе ресурсов Azure с помощью Azure Resource Graph могут возникать ошибки. В этой статье описываются различные ошибки, которые могут возникнуть, и пути их решения.

Поиск сведений об ошибке

Большинство ошибок возникают в результате неполадок при выполнении запроса с использованием Azure Resource Graph. При сбое запроса пакет SDK выводит сведения о сбое в обработке запроса. Эти сведения указывают на проблемы, которые нужно исправить, чтобы следующий запрос был выполнен успешно.

Общие ошибки

Сценарий. Регулируемые запросы

Проблема

Для заказчиков, отправляющих большие запросы ресурсов или отправляющих их часто, запросы регулируются.

Причина

Azure Resource Graph выделяет количественную квоту для каждого пользователя с учетом временного окна. Например, пользователь не может отправить более 15 запросов в течение 5 секунд, иначе применяется регулирование. Значение квоты определяется множеством факторов и может быть изменено. Дополнительные сведения см. в разделе Регулирование в Azure Resource Graph.

Решение

Существует несколько способов работы с регулируемыми запросами.

Сценарий. Слишком большое количество подписок

Проблема

Заказчики, у которых есть доступ более чем к 1000 подпискам, включая подписки для нескольких арендаторов в Azure Lighthouse, не могут получать данные из всех подписок в рамках одного вызова Azure Resource Graph.

Причина

Azure CLI и PowerShell переадресуют только первые 1000 подписок в Azure Resource Graph. REST API для Azure Resource Graph принимает максимальное число подписок, для которых выполняется запрос.

Решение

Число запросов с набором подписок, добавляемых в пакет, не должно превышать 1000 подписок. Решение использует параметр Subscription в PowerShell.

# Replace this query with your own
$query = 'Resources | project type'

# Fetch the full array of subscription IDs
$subscriptions = Get-AzSubscription
$subscriptionIds = $subscriptions.Id

# Create a counter, set the batch size, and prepare a variable for the results
$counter = [PSCustomObject] @{ Value = 0 }
$batchSize = 1000
$response = @()

# Group the subscriptions into batches
$subscriptionsBatch = $subscriptionIds | Group -Property { [math]::Floor($counter.Value++ / $batchSize) }

# Run the query for each batch
foreach ($batch in $subscriptionsBatch){ $response += Search-AzGraph -Query $query -Subscription $batch.Group }

# View the completed results of the query on all subscriptions
$response

Сценарий. Неподдерживаемый заголовок Content-Type REST

Проблема

Заказчики, запрашивающие REST API Azure Resource Graph, получают ответ 500 (Внутренняя ошибка сервера).

Причина

REST API Azure Resource Graph поддерживает только Content-Type из application/json. Для отдельных инструментов или агентов REST значение по умолчанию равно text/plain. Это значение не поддерживается в REST API.

Решение

Убедитесь в том, что инструмент или агент, который используется для отправки запроса в Azure Resource Graph, содержит заголовок REST API Content-Type, настроенный для application/json.

Сценарий. Отсутствует разрешение на чтение для всех подписок в списке

Проблема

Заказчики, которые явным образом передают список подписок с запросом Azure Resource Graph, получают ответ 403 (Запрещено).

Причина

Если у клиента нет разрешения на чтение для всех предоставленных подписок, запрос отклоняется из-за недостаточных прав доступа.

Решение

Добавьте хотя бы одну подписку в список подписок, чтобы предоставить заказчику, отправляющему запрос, хотя бы доступ для чтения. Дополнительные сведения см. в разделе Разрешения в Azure Resource Graph.

Дальнейшие действия

Если вы не видите своего варианта проблемы или вам не удается ее устранить, дополнительные сведения можно получить, посетив один из следующих каналов.

  • Получите консультацию специалистов по Azure на форумах Azure.
  • Подключитесь к @AzureSupport — официальной учетной записи Microsoft Azure, созданной для оптимизации работы клиентов благодаря возможности доступа к ресурсам сообщества Azure, включая ответы на вопросы, поддержку и консультации специалистов.
  • Если вам нужна дополнительная помощь, отправьте запрос в службу поддержки Azure. Перейдите на сайт поддержки Azure и щелкните Получить поддержку.