Mengatasi kesalahan untuk pendaftaran penyedia sumber daya

Artikel ini menjelaskan kesalahan pendaftaran penyedia sumber daya yang terjadi saat Anda menggunakan penyedia sumber daya yang belum pernah Anda gunakan di langganan Azure Anda. Kesalahan ditampilkan saat Anda menyebarkan sumber daya dengan file Bicep atau template Azure Resource Manager (template ARM). Jika Azure tidak secara otomatis mendaftarkan penyedia sumber daya, Anda dapat melakukan pendaftaran manual.

Gejala

Saat sumber daya disebarkan, Anda mungkin menerima kode dan pesan kesalahan berikut:

Code: NoRegisteredProviderFound
Message: No registered resource provider found for location {location}
and API version {api-version} for type {resource-type}.

Atau, Anda mungkin menerima pesan serupa yang menyatakan:

Code: MissingSubscriptionRegistration
Message: The subscription is not registered to use namespace {resource-provider-namespace}

Pesan kesalahan biasanya memberi Anda saran untuk lokasi dan versi API yang didukung. Anda dapat mengubah templat Anda untuk menggunakan nilai yang disarankan. Sebagian besar penyedia didaftarkan secara otomatis oleh portal Microsoft Azure atau antarmuka baris perintah, tetapi tidak semua. Jika Anda belum pernah menggunakan penyedia sumber daya tertentu sebelumnya, Anda mungkin perlu mendaftarkan penyedia tersebut.

Saat tindakan matikan secara otomatis mesin virtual (VM) dinonaktifkan, Anda mungkin menerima pesan kesalahan yang mirip dengan:

Code: AuthorizationFailed
Message: The client '<identifier>' with object id '<identifier>' does not have authorization to perform
action 'Microsoft.Compute/virtualMachines/read' over scope ...

Kesalahan tak terduga dapat terjadi untuk penyedia sumber daya yang tidak ada di templat ARM atau file Bicep Anda. Kesalahan ini mungkin terjadi saat sumber daya disebarkan, lalu membuat sumber daya pendukung lainnya. Misalnya, sumber daya di templat Anda menambahkan sumber daya pemantauan atau keamanan. Pesan kesalahan yang menunjukkan kumpulan nama XML penyedia sumber daya yang Anda perlukan untuk mendaftar merupakan sumber daya pendukung.

Penyebab

Anda menerima kesalahan ini karena salah satu alasan berikut:

  • Penyedia sumber daya yang diperlukan belum terdaftar untuk langganan Anda.
  • Versi API tidak didukung untuk jenis sumber daya.
  • Lokasi tidak didukung untuk jenis sumber daya.
  • Untuk tindakan matikan secara otomatis mesin virtual, penyedia sumber daya Microsoft.DevTestLab harus terdaftar.

Solusi

Anda bisa menggunakan Azure CLI untuk mendapatkan informasi tentang status pendaftaran penyedia sumber daya dan mendaftarkan penyedia sumber daya.

Gunakan daftar penyedia az untuk menampilkan status pendaftaran penyedia sumber daya langganan Anda. Contoh menggunakan parameter --output table untuk memfilter keluaran agar mudah dibaca. Anda dapat menghilangkan parameter untuk melihat semua properti.

Perintah berikut mencantumkan semua penyedia sumber daya langganan meskipun mereka Registered atau NotRegistered.

az provider list --output table

Anda dapat memfilter output berdasarkan status pendaftaran. Ganti nilai kueri dengan Registered atau NotRegistered.

az provider list --query "[?registrationState=='Registered']" --output table

Dapatkan status pendaftaran untuk penyedia sumber daya tertentu:

az provider list --query "[?namespace=='Microsoft.Compute']" --output table

Untuk mendaftarkan penyedia sumber daya, gunakan perintah daftarkan penyedia az , dan tentukan kumpulan nama XML untuk mendaftar.

az provider register --namespace Microsoft.Cdn

Untuk mendapatkan lokasi yang didukung jenis sumber daya, gunakan perlihatkan penyedia az:

az provider show --namespace Microsoft.Web --query "resourceTypes[?resourceType=='sites'].locations"

Dapatkan versi API yang didukung jenis sumber daya:

az provider show --namespace Microsoft.Web --query "resourceTypes[?resourceType=='sites'].apiVersions"