حل الأخطاء الخاصة بتسجيل موفر الموارد

توضح هذه المقالة أخطاء تسجيل موفر الموارد التي تحدث عند استخدام موفر مورد لم تستخدمه بالفعل في اشتراك Azure. يتم عرض الأخطاء عند توزيع الموارد مع ملف Bicep أو قالب Azure Resource Manager (قالب ARM). إذا لم يقم Azure بتسجيل موفر الموارد تلقائيًا، يمكنك إجراء تسجيل يدوي.

عَرَض

عند توزيع مورد، قد تتلقى رمز الخطأ التالي والرسالة التالية:

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

أو قد تتلقى رسالة مشابهة تنص على:

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

ينبغي أن تعطيك رسالة الخطأ اقتراحات للمواقع المدعومة وإصدارات واجهة برمجة التطبيقات. يمكنك تغيير القالب لاستخدام قيمة مقترحة. يتم تسجيل معظم الموفرين تلقائيًا بواسطة مدخل Microsoft Azure أو واجهة سطر الأوامر، ولكن ليس جميعهم. إذا لم تكن قد استخدمت موفر موارد معينًا من قبل، فقد تحتاج إلى تسجيل هذا الموفر.

عند تعطيل إيقاف التشغيل التلقائي للجهاز الظاهري (VM)، قد تتلقى رسالة خطأ مشابهة لما يلي:

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

يمكن أن يحدث خطأ غير متوقع لموفر مورد غير موجود في قالب ARM أو ملف Bicep. قد يحدث هذا الخطأ عند توزيع مورد يقوم بإنشاء موارد دعم أخرى. على سبيل المثال، يضيف المورد في القالب موارد مراقبة أو أمان. تشير رسالة الخطأ إلى مساحة اسم موفر المورد التي تحتاج إلى تسجيلها للمورد الداعم.

السبب

تتلقى هذه الأخطاء لأحد الأسباب التالية:

  • لم يتم تسجيل موفر الموارد المطلوب للاشتراك.
  • إصدار واجهة برمجة التطبيقات غير معتمد لنوع المورد.
  • الموقع غير مدعوم لنوع المورد.
  • لإيقاف تشغيل الجهاز الظاهري التلقائي، يجب تسجيل موفر المورد Microsoft.DevTestLab.

حل

يمكنك استخدام Azure CLI للحصول على معلومات حول حالة تسجيل موفر المورد وتسجيل موفر الموارد.

استخدم az provider list لعرض حالة التسجيل لموفري موارد الاشتراك. تستخدم الأمثلة المعلمة --output table لتصفية الإخراج من أجل قابلية القراءة. يمكنك حذف المعلمة لمشاهدة كافة الخصائص.

يسرد الأمر التالي كافة موفري موارد الاشتراك وما إذا كانوا Registered أو NotRegistered.

az provider list --output table

يمكنك تصفية الإخراج حسب حالة التسجيل. استبدل قيمة الاستعلام بـ Registered أو NotRegistered.

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

يمكنك الحصول على حالة التسجيل لموفر مورد معين:

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

لتسجيل موفر موارد، استخدم الأمر az provider register، وحدد مساحة الاسم للتسجيل.

az provider register --namespace Microsoft.Cdn

للحصول على المواقع المدعومة لنوع مورد، استخدم az provider show:

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

يمكنك الحصول على إصدارات واجهة برمجة التطبيقات المعتمدة لنوع مورد:

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