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"