Risolvere errori con Azure Resource Graph
È possibile che si verifichino errori durante l'esecuzione di query sulle risorse di Azure con Azure Resource Graph. Questo articolo descrive i diversi errori che possono verificarsi e come risolverli.
Ricerca dei dettagli di errore
La maggior parte degli errori è il risultato di un problema durante l'esecuzione di una query con Azure Resource Graph. Quando una query ha esito negativo, l'SDK fornisce informazioni dettagliate sulla query non riuscita. Le informazioni indicano il problema in modo da poterlo risolvere e garantire la riuscita di una query successiva.
Errori generali
Scenario: richieste limitate
Problema
I clienti che eseguono query di risorse grandi o frequenti hanno richieste limitate.
Causa
Azure Resource Graph alloca un numero di quota per ogni utente in base a un intervallo di tempo. Ad esempio, un utente può inviare al massimo 15 query all'interno di ogni intervallo di 5 secondi senza limitazioni. Il valore della quota è determinato da molti fattori ed è soggetto a modifiche. Per altre informazioni, vedere Limitazione in Azure Resource Graph.
Risoluzione
Esistono diversi metodi per gestire le richieste limitate:
Scenario: troppe sottoscrizioni
Problema
I clienti che hanno accesso a più di 1,000 sottoscrizioni, incluse le sottoscrizioni tra tenant con Azure Lighthouse, non possono recuperare dati in tutte le sottoscrizioni con una singola chiamata ad Azure Resource Graph.
Causa
L'interfaccia della riga di comando di Azure e PowerShell trasferiscono solo le prime 1,000 sottoscrizioni ad Azure Resource Graph. L'API REST di Azure Resource Graph accetta un numero massimo di sottoscrizioni su cui eseguire la query.
Risoluzione
Il numero di richieste batch per la query con un subset di sottoscrizioni rimane al di sotto del limite di 1,000 sottoscrizioni. La soluzione consiste nell'usare il parametro Subscription in 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: intestazione REST Content-Type non supportata
Problema
I clienti che eseguono query sull'API REST di Azure Resource Graph ottengono una risposta 500 (errore interno del server).
Causa
L'API REST di Azure Resource Graph supporta solo un Content-Type
di application/json
. Per impostazione predefinita, alcuni strumenti o agenti REST sono impostati su text/plain
, opzione non supportata dall'API REST.
Risoluzione
Verificare che nello strumento o nell'agente usato per eseguire query su Azure Resource Graph l'intestazione API REST Content-Type
sia configurata per application/json
.
Scenario: nessuna autorizzazione di lettura per tutte le sottoscrizioni nell'elenco
Problema
I clienti che passano esplicitamente un elenco di sottoscrizioni con una query di Azure Resource Graph ottengono una risposta 403 (accesso negato).
Causa
Se il cliente non dispone dell'autorizzazione di lettura per tutte le sottoscrizioni fornite, la richiesta viene negata a causa della mancanza di diritti di sicurezza appropriati.
Risoluzione
Includere almeno una sottoscrizione nell'elenco di sottoscrizioni per cui il cliente che esegue la query disponga almeno dell'accesso in lettura. Per altre informazioni, vedere Autorizzazioni in Azure Resource Graph.
Scenario: i campi di Azure Resource Graph non vengono aggiornati immediatamente
Problema
Quando si usa Azure Resource Graph, sono presenti campi specifici che vengono aggiornati con una cadenza più lenta. Questi campi convergeranno in valori true nel corso del tempo, purché non ci siano aggiornamenti tra loro.
Elenco dei campi interessati
Importante
- Questo concetto non è limitato a proprietà specifiche. L'elenco seguente sono esempi che potrebbero risultare ritardati, ma alla fine diventano aggiornati.
- Esistono alcuni casi in cui gli stati della macchina virtuale vengono aggiornati in modo asincrono, il che significa che lo stato corrente non corrisponde allo "stato obiettivo" (lo stato desiderato impostato dai clienti). Tuttavia, questi campi della macchina virtuale convergeranno nel tempo.
- properties.extended.instanceView.osName
- properties.extended.instanceView.osVersion
- properties.extended.instanceView.computerName
Causa
Alcuni campi provengono dai BLOB dell'agente che non dispongono di copertura delle notifiche, pertanto gli aggiornamenti a questi campi vengono ritardati.
Risoluzione
Questi campi vengono aggiornati a cadenza più lenta oggi, ma convergeranno sui valori reali nel corso del tempo, purché non ci siano aggiornamenti tra loro.
Passaggi successivi
Se il problema riscontrato non è presente in questo elenco o se non si riesce a risolverlo, visitare uno dei canali seguenti per ottenere ulteriore assistenza:
- Ottenere risposte dagli esperti di Azure tramite i forum di Azure.
- Contatta @AzureSupport, l'account Microsoft Azure ufficiale per il miglioramento dell'esperienza dei clienti che mette in contatto la community di Azure con le risorse corrette: risposte, supporto ed esperti.
- Se è necessaria un'assistenza maggiore, è possibile inviare una richiesta al supporto tecnico di Azure. Accedere al sito del supporto di Azure e selezionare Ottenere supporto.