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.