Rozwiązywanie problemów z błędami przy użyciu usługi Azure Resource Graph
Podczas wykonywania zapytań dotyczących zasobów platformy Azure przy użyciu usługi Azure Resource Graph mogą wystąpić błędy. W tym artykule opisano różne błędy, które mogą wystąpić i jak je rozwiązać.
Znajdowanie szczegółów błędu
Większość błędów jest wynikiem problemu podczas uruchamiania zapytania przy użyciu usługi Azure Resource Graph. Gdy zapytanie zakończy się niepowodzeniem, zestaw SDK udostępni szczegółowe informacje o takim zapytaniu. Te informacje wskazują problem, aby można go było rozwiązać, a późniejsze zapytanie zakończyło się powodzeniem.
Błędy ogólne
Scenariusz: żądania ograniczone
Problem
Klienci wykonujący duże lub częste zapytania dotyczące zasobów mają ograniczone żądania.
Przyczyna
Usługa Azure Resource Graph przydziela numer limitu przydziału dla każdego użytkownika na podstawie przedziału czasu. Na przykład użytkownik może wysyłać co najwyżej 15 zapytań w co 5-sekundowym oknie bez ograniczania przepustowości. Wartość limitu przydziału jest określana przez wiele czynników i może ulec zmianie. Aby uzyskać więcej informacji, zobacz Ograniczanie przepustowości w usłudze Azure Resource Graph.
Rozwiązanie
Istnieje kilka metod obsługi żądań ograniczonych:
Scenariusz: zbyt wiele subskrypcji
Problem
Klienci z dostępem do ponad 1000 subskrypcji, w tym subskrypcji między dzierżawami z usługą Azure Lighthouse, nie mogą pobierać danych we wszystkich subskrypcjach w jednym wywołaniu usługi Azure Resource Graph.
Przyczyna
Interfejs wiersza polecenia platformy Azure i program PowerShell przekazują tylko pierwsze 1000 subskrypcji do usługi Azure Resource Graph. Interfejs API REST dla usługi Azure Resource Graph akceptuje maksymalną liczbę subskrypcji do wykonania zapytania.
Rozwiązanie
Żądania wsadowe dla zapytania z podzbiorem subskrypcji, które pozostaną poniżej limitu subskrypcji 1000. Rozwiązanie korzysta z parametru Subskrypcja w programie 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
Scenariusz: nieobsługiwany nagłówek REST typu zawartości
Problem
Klienci, którzy wysyłają zapytania dotyczące interfejsu API REST usługi Azure Resource Graph, otrzymają zwróconą odpowiedź 500 (wewnętrzny błąd serwera).
Przyczyna
Interfejs API REST usługi Azure Resource Graph obsługuje tylko element Content-Type
.application/json
Niektóre narzędzia REST lub agenci domyślnie mają text/plain
wartość , która nie jest obsługiwana przez interfejs API REST.
Rozwiązanie
Sprawdź, czy narzędzie lub agent używany do wykonywania zapytań w usłudze Azure Resource Graph ma skonfigurowany nagłówek Content-Type
interfejsu API REST dla usługi application/json
.
Scenariusz: brak uprawnień do odczytu do wszystkich subskrypcji na liście
Problem
Klienci, którzy jawnie przekazują listę subskrypcji za pomocą zapytania usługi Azure Resource Graph, otrzymują odpowiedź 403 (zabronione).
Przyczyna
Jeśli klient nie ma uprawnień do odczytu do wszystkich podanych subskrypcji, żądanie zostanie odrzucone z powodu braku odpowiednich praw zabezpieczeń.
Rozwiązanie
Uwzględnij co najmniej jedną subskrypcję na liście subskrypcji, do której klient uruchamiający zapytanie ma co najmniej dostęp do odczytu. Aby uzyskać więcej informacji, zobacz Uprawnienia w usłudze Azure Resource Graph.
Scenariusz: pola usługi Azure Resource Graph nie są natychmiast aktualizowane
Problem
W przypadku korzystania z usługi Azure Resource Graph istnieją określone pola, które są aktualizowane w wolniejszym tempie. Te pola zbiegają się z rzeczywistymi wartościami w czasie, pod warunkiem, że między nimi nie ma żadnych aktualizacji.
Lista pól, których dotyczy problem
Ważne
- Ta koncepcja nie jest ograniczona do określonych właściwości. Poniższa lista zawiera przykłady, które mogą zostać opóźnione, ale ostatecznie zostaną zaktualizowane.
- Istnieją pewne przypadki, w których stany maszyn wirtualnych są aktualizowane asynchronicznie, co oznacza, że bieżący stan nie jest zgodny ze stanem "cel" (żądany stan ustawiony przez klientów). Jednak te pola maszyn wirtualnych będą zbieżne z upływem czasu.
- properties.extended.instanceView.osName
- properties.extended.instanceView.osVersion
- properties.extended.instanceView.computerName
Przyczyna
Niektóre pola pochodzą z obiektów blob agenta, które nie mają pokrycia powiadomień, dlatego aktualizacje tych pól są opóźnione.
Rozwiązanie
Te pola są aktualizowane w wolniejszym tempie dzisiaj, ale zbiegają się z rzeczywistymi wartościami w czasie, pod warunkiem, że nie ma żadnych aktualizacji między nimi.
Następne kroki
Jeśli problem nie został wyświetlony lub nie możesz go rozwiązać, odwiedź jeden z następujących kanałów, aby uzyskać więcej pomocy technicznej:
- Uzyskaj odpowiedzi od ekspertów platformy Azure za pośrednictwem forów platformy Azure.
- Połącz się z @AzureSupport — oficjalne konto platformy Microsoft Azure w celu poprawy jakości obsługi klienta przez połączenie społeczności platformy Azure z odpowiednimi zasobami: odpowiedziami, pomocą techniczną i ekspertami.
- Jeśli potrzebujesz dodatkowej pomocy, możesz zgłosić zdarzenie pomoc techniczna platformy Azure. Przejdź do witryny pomoc techniczna platformy Azure i wybierz pozycję Uzyskaj pomoc techniczną.