Kaynak sağlayıcısı kaydı hatalarını giderme

Bu makalede, Azure aboneliğinizde daha önce kullanmadığınız bir kaynak sağlayıcısı kullandığınızda oluşan kaynak sağlayıcısı kayıt hataları açıklanmaktadır. Bicep dosyası veya Azure Resource Manager şablonu (ARM şablonu) ile kaynakları dağıttığınızda hatalar görüntülenir. Azure bir kaynak sağlayıcısını otomatik olarak kaydetmezse el ile kayıt yapabilirsiniz.

Belirti

Bir kaynak dağıtıldığında aşağıdaki hata kodunu ve iletisini alabilirsiniz:

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

Veya aşağıdakilere benzer bir ileti alabilirsiniz:

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

Hata iletisi, desteklenen konumlar ve API sürümleri için size öneriler vermelidir. Şablonunuzu önerilen bir değeri kullanacak şekilde değiştirebilirsiniz. Sağlayıcıların çoğu Microsoft Azure portalı veya komut satırı arabirimi tarafından otomatik olarak kaydedilir ancak tümü kaydedilmez. Daha önce belirli bir kaynak sağlayıcısını kullanmadıysanız bu sağlayıcıyı kaydetmeniz gerekebilir.

Sanal makine (VM) otomatik kapatma devre dışı bırakıldığında şuna benzer bir hata iletisi alabilirsiniz:

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

ARM şablonunuzda veya Bicep dosyanızda olmayan bir kaynak sağlayıcısında beklenmeyen bir hata oluşabilir. Bu hata, başka destekleyici kaynaklar oluşturan bir kaynak dağıtıldığında oluşabilir. Örneğin, şablonunuzdaki kaynak izleme veya güvenlik kaynakları ekler. Hata iletisi, kaydetmeniz gereken kaynak sağlayıcısı ad alanının destekleyici kaynak için olduğunu gösterir.

Nedeni

Bu hataları aşağıdaki nedenlerden biri nedeniyle alırsınız:

  • Gerekli kaynak sağlayıcısı aboneliğiniz için kaydedilmemiş.
  • API sürümü kaynak türü için desteklenmiyor.
  • Kaynak türü için konum desteklenmiyor.
  • VM otomatik kapatma için kaynak sağlayıcısının Microsoft.DevTestLab kaydedilmesi gerekir.

Çözüm

Bir kaynak sağlayıcısının kayıt durumu hakkında bilgi almak ve kaynak sağlayıcısını kaydetmek için Azure CLI'yi kullanabilirsiniz.

Aboneliğinizin kaynak sağlayıcılarının kayıt durumunu görüntülemek için az provider list komutunu kullanın. Örneklerde, çıktıyı --output table okunabilirlik açısından filtrelemek için parametresi kullanılır. Tüm özellikleri görmek için parametresini atlayabilirsiniz.

Aşağıdaki komut, aboneliğin tüm kaynak sağlayıcılarını ve veya olup olmadıklarını RegisteredNotRegisteredlisteler.

az provider list --output table

Çıktıyı kayıt durumuna göre filtreleyebilirsiniz. Sorgu değerini veya NotRegisteredile Registered değiştirin.

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

Belirli bir kaynak sağlayıcısının kayıt durumunu alın:

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

Bir kaynak sağlayıcısını kaydetmek için az provider register komutunu kullanın ve kaydedilecek ad alanını belirtin.

az provider register --namespace Microsoft.Cdn

Bir kaynak türünün desteklenen konumlarını almak için az provider show komutunu kullanın:

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

Kaynak türünün desteklenen API sürümlerini alın:

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