Felsöka fel med Hjälp av Azure Resource Graph
Du kan stöta på fel när du kör frågor mot Azure-resurser med Azure Resource Graph. Den här artikeln beskriver olika fel som kan uppstå och hur du löser dem.
Hitta felinformation
De flesta felen beror på problem när en fråga körs med Azure Resource Graph. När en fråga misslyckas innehåller SDK:n information om frågan som misslyckas. Den här informationen anger problemet så att det kan åtgärdas och en senare fråga lyckas.
Allmänna fel
Scenario: Begränsade begäranden
Problem
Kunder som gör stora eller frekventa resursfrågor har begränsade begäranden.
Orsak
Azure Resource Graph allokerar ett kvotnummer för varje användare baserat på ett tidsfönster. En användare kan till exempel skicka högst 15 frågor inom varje 5-sekundersfönster utan att begränsas. Kvotvärdet bestäms av många faktorer och kan komma att ändras. Mer information finns i Begränsning i Azure Resource Graph.
Åtgärd
Det finns flera metoder för att hantera begränsade begäranden:
Scenario: För många prenumerationer
Problem
Kunder med åtkomst till mer än 1 000 prenumerationer, inklusive prenumerationer mellan klientorganisationer med Azure Lighthouse, kan inte hämta data i alla prenumerationer i ett enda anrop till Azure Resource Graph.
Orsak
Azure CLI och PowerShell vidarebefordrar endast de första 1 000 prenumerationerna till Azure Resource Graph. REST-API:et för Azure Resource Graph har en maxgräns för hur många prenumerationer som frågan kan köras mot.
Åtgärd
Batch-begäranden för frågan med en delmängd prenumerationer för att hålla sig under gränsen på 1 000 prenumerationer. Lösningen använder parametern Prenumeration i 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
Scenario: REST-huvud av innehållstyp som inte stöds
Problem
Kunder som frågar Azure Resource Graph REST API får ett svar på 500 (internt serverfel) som returneras.
Orsak
Rest-API:et för Azure Resource Graph stöder endast en Content-Type
av application/json
. Vissa REST-verktyg eller agenter har standardvärdet text/plain
, som inte stöds av REST-API:et.
Åtgärd
Kontrollera att verktyget eller agenten som du använder för att fråga Azure Resource Graph har REST API-huvudet Content-Type
konfigurerat för application/json
.
Scenario: Ingen läsbehörighet för alla prenumerationer i listan
Problem
Kunder som uttryckligen skickar en lista över prenumerationer med en Azure Resource Graph-fråga får ett svar på 403 (förbjuden).
Orsak
Om kunden inte har läsbehörighet till alla angivna prenumerationer nekas begäran på grund av brist på lämpliga säkerhetsrättigheter.
Åtgärd
Inkludera minst en prenumeration i prenumerationslistan som kunden som kör frågan har minst läsbehörighet till. Mer information finns i Behörigheter i Azure Resource Graph.
Scenario: Azure Resource Graph-fält uppdateras inte omedelbart
Problem
Det finns specifika fält som uppdateras långsammare när du använder Azure Resource Graph. Dessa fält konvergerar till sanna värden över tid, förutsatt att det inte finns några uppdateringar däremellan.
Lista över fält som påverkas
Viktigt!
- Det här konceptet är inte begränsat till specifika egenskaper. Följande lista är exempel som du kan hitta fördröjda, men så småningom uppdateras.
- Det finns vissa fall där vm-tillstånd uppdateras asynkront, vilket innebär att det aktuella tillståndet inte matchar "måltillståndet" (önskat tillstånd som angetts av kunder). De här vm-fälten konvergerar dock över tid.
- properties.extended.instanceView.osName
- properties.extended.instanceView.osVersion
- properties.extended.instanceView.computerName
Orsak
Vissa fält kommer från agentblobar som inte har meddelandetäckning, och därför fördröjs uppdateringar av dessa fält.
Åtgärd
Dessa fält uppdateras i en långsammare takt idag, men konvergerar till sanna värden över tid, förutsatt att det inte finns några uppdateringar däremellan.
Nästa steg
Om du inte ser problemet eller inte kan lösa problemet går du till någon av följande kanaler för mer support:
- Få svar från Azure-experter via Azure-forum.
- Anslut med @AzureSupport – det officiella Microsoft Azure-kontot för att förbättra kundupplevelsen genom att ansluta Azure-communityn till rätt resurser: svar, support och experter.
- Om du behöver mer hjälp kan du skapa en Azure Support incident. Gå till webbplatsen Azure Support och välj Hämta support.