Устранение неполадок с помощью службы 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
Сценарий: неподдерживаемый заголовок REST типа контента
Проблема
Заказчики, запрашивающие REST API Azure Resource Graph, получают ответ 500 (Внутренняя ошибка сервера).
Причина
REST API Azure Resource Graph поддерживает только .Content-Type
application/json
Некоторые средства REST или агенты по умолчанию text/plain
не поддерживаются REST API.
Разрешение
Убедитесь, что средство или агент, который вы используете для запроса Azure Resource Graph, имеет заголовок Content-Type
REST API, настроенный для application/json
.
Сценарий: нет разрешения на чтение для всех подписок в списке
Проблема
Заказчики, которые явным образом передают список подписок с запросом Azure Resource Graph, получают ответ 403 (Запрещено).
Причина
Если у клиента нет разрешения на чтение для всех предоставленных подписок, запрос отклоняется из-за недостаточных прав доступа.
Разрешение
Добавьте хотя бы одну подписку в список подписок, чтобы предоставить заказчику, отправляющему запрос, хотя бы доступ для чтения. Дополнительные сведения см. в разделе Разрешения в Azure Resource Graph.
Следующие шаги
Если вы не видите своего варианта проблемы или вам не удается ее устранить, дополнительные сведения можно получить, посетив один из следующих каналов.
- Получите ответы специалистов Azure на форумах Azure.
- Подключитесь к @AzureSupport — официальной учетной записи Microsoft Azure, созданной для оптимизации работы клиентов благодаря возможности доступа к ресурсам сообщества Azure, включая ответы на вопросы, поддержку и консультации специалистов.
- Если вам нужна дополнительная помощь, отправьте запрос в службу поддержки Azure. Перейдите на сайт поддержки Azure и щелкните Получить поддержку.