Bagikan melalui


Memecahkan masalah kesalahan menggunakan Azure Resource Graph

Anda mungkin mengalami kesalahan saat mengkueri sumber daya Azure dengan Azure Resource Graph. Artikel ini menjelaskan berbagai kesalahan yang mungkin terjadi dan cara mengatasinya.

Mencari detail kesalahan

Sebagian besar kesalahan adalah hasil dari masalah saat menjalankan kueri dengan Azure Resource Graph. Saat kueri gagal, SDK memberikan detail tentang kueri yang gagal. Informasi ini menunjukkan masalahnya sehingga dapat diperbaiki dan kueri selanjutnya berhasil.

Kesalahan umum

Skenario: Permintaan yang dibatasi

Masalah

Pelanggan yang membuat kueri sumber daya yang besar atau sering memiliki permintaan yang dibatasi.

Penyebab

Azure Resource Graph mengalokasikan nomor kuota untuk setiap pengguna berdasarkan jendela waktu. Misalnya, pengguna dapat mengirim paling banyak 15 kueri dalam setiap jangka waktu 5 detik tanpa dibatasi. Nilai kuota ditentukan oleh banyak faktor dan dapat berubah. Untuk informasi selengkapnya, lihat Pembatasan di Azure Resource Graph.

Resolusi

Ada beberapa metode untuk menangani permintaan yang dibatasi:

Skenario: Terlalu banyak langganan

Masalah

Pelanggan dengan akses ke lebih dari 1.000 langganan, termasuk langganan lintas penyewa dengan Azure Lighthouse, tidak dapat mengambil data di semua langganan dalam satu panggilan ke Azure Resource Graph.

Penyebab

Azure CLI dan PowerShell hanya meneruskan 1.000 langganan pertama ke Azure Resource Graph. REST API untuk Azure Resource Graph menerima jumlah langganan maksimum untuk melakukan kueri.

Resolusi

Permintaan batch untuk kueri dengan subset langganan tetap di bawah batas 1.000 langganan. Solusinya adalah menggunakan parameter Subscription di 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

Skenario: Header REST Content-Type yang Tidak Didukung

Masalah

Pelanggan yang mengkueri Azure Resource Graph REST API mendapatkan respons 500 (Kesalahan Server Internal) yang dikembalikan.

Penyebab

REST API Azure Resource Graph hanya mendukung Content-Type .application/json Beberapa alat atau agen REST default ke text/plain, yang tidak didukung oleh REST API.

Resolusi

Validasi bahwa alat atau agen yang Anda gunakan untuk mengkueri Azure Resource Graph memiliki header Content-Type REST API yang dikonfigurasi untuk application/json.

Skenario: Tidak ada izin baca untuk semua langganan dalam daftar

Masalah

Pelanggan yang secara eksplisit meneruskan daftar langganan dengan kueri Azure Resource Graph mendapatkan respons 403 (Terlarang).

Penyebab

Jika pelanggan tidak memiliki izin baca untuk semua langganan yang disediakan, permintaan ditolak karena kurangnya hak keamanan yang sesuai.

Resolusi

Sertakan setidaknya satu langganan dalam daftar langganan yang setidaknya memiliki akses baca kepada pelanggan yang menjalankan kueri. Untuk informasi selengkapnya, lihat Izin di Azure Resource Graph.

Langkah berikutnya

Jika Anda tidak melihat masalah atau tidak dapat memecahkan masalah, kunjungi salah satu saluran berikut untuk mendapatkan dukungan lebih lanjut:

  • Dapatkan jawaban dari para ahli Azure melalui Forum Internet Azure.
  • Menghubungkan ke @AzureSupport - akun Microsoft Azure resmi untuk meningkatkan pengalaman pelanggan dengan menghubungkan komunitas Azure ke sumber daya yang tepat: jawaban, dukungan, dan pakar.
  • Jika memerlukan bantuan lainnya, Anda dapat mengajukan insiden dukungan Azure. Buka situs dukungan Azure, lalu pilih Dapatkan Dukungan.