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

Bu makalede, aboneliğinizde daha önce kullanılmayan bir kaynak sağlayıcısı kullandığınızda oluşabilecek hatalar açıklanır.

Belirti

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

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

Ya da şunları belirten 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 öneriler vermelidir. Şablonunuzu önerilen bir değer kullanacak şekilde değiştirebilirsiniz. çoğu sağlayıcı Microsoft Azure portalı veya komut satırı arabirimi tarafından otomatik olarak kaydedilir, ancak desteklenmez. Daha önce belirli bir kaynak sağlayıcısını kullanmadıysanız, bu sağlayıcıyı kaydetmeniz gerekebilir.

Sanal makine (VM) otomatik kapatması 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 Bıcep dosyanızda olmayan bir kaynak sağlayıcısı için beklenmeyen bir hata oluşabilir. Bu hata, diğer destekleyici kaynakları oluşturan bir kaynak dağıtıldığında meydana gelebilir. Örneğin, şablonunuzda bulunan kaynak izleme veya güvenlik kaynakları ekliyor. Hata iletisi, kaydolmanız gereken kaynak sağlayıcısı ad alanını Destekleme kaynağı için belirtir.

Nedeni

Şu nedenlerden biri için bu hataları alırsınız:

  • Gerekli kaynak sağlayıcısı aboneliğiniz için kaydedilmemiş.
  • Kaynak türü için API sürümü desteklenmiyor.
  • Konum, kaynak türü için desteklenmiyor.
  • VM otomatik kapatması için Microsoft.DevTestLab kaynak sağlayıcının kayıtlı olması gerekir.

Çözüm

Azure CLı kullanarak bir kaynak sağlayıcının kayıt durumu hakkında bilgi alabilir ve bir kaynak sağlayıcısı kaydedebilirsiniz.

Aboneliğinizin kaynak sağlayıcılarının kayıt durumunu göstermek için az Provider List ' i kullanın. Örnekler, --output table çıktıyı okunabilirlik için filtrelemek için parametresini kullanır. Tüm özellikleri görmek için parametresini atlayabilirsiniz.

Aşağıdaki komut, tüm aboneliğin kaynak sağlayıcılarını ve ne olduğunu listeler Registered NotRegistered .

az provider list --output table

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

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

Belirli bir kaynak sağlayıcısı için kayıt durumunu al:

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 kaydolmak üzere ad alanını belirtin.

az provider register --namespace Microsoft.Cdn

Kaynak türünün desteklenen konumlarını almak için az Provider Show' ı kullanın:

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

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

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