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


Устранение неполадок с помощью службы 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 и щелкните Получить поддержку.