موفرو موارد Azure وأنواعها

موفر موارد Azure هو مجموعة من عمليات REST التي تمكن الوظائف لخدمة Azure معينة. على سبيل المثال، تتكون خدمة Key Vault من موفر موارد يسمى Microsoft.KeyVault. يحدد موفر الموارد عمليات REST لإدارة المخازن والأسرار والمفاتيح والشهادات.

يحدد موفر الموارد موارد Azure التي يمكنك نشرها إلى حسابك. يتبع اسم نوع المورد التنسيق: {resource-provider}/{resource-type}. نوع المورد لخزنة المفاتيح هو Microsoft.KeyVault/vaults.

في هذه المقالة، ستتعرف على كيفية:

  • عرض جميع موفري الموارد في Azure
  • التحقق من حالة التسجيل لموفر الموارد
  • تسجيل موفر الموارد
  • عرض أنواع الموارد لموفر الموارد
  • عرض المواقع الصالحة لنوع المورد
  • عرض إصدارات واجهة برمجة التطبيقات الصالحة لنوع مورد

للحصول على قائمة تعين موفري الموارد لخدمات Azure، راجع موفرو الموارد لخدمات Azure.

سجل موفر الموارد

قبل استخدام موفر موارد، يجب التأكد من تسجيل اشتراك Azure لموفر الموارد. يقوم التسجيل بتكوين اشتراكك للعمل مع موفر الموارد.

هام

سجل موفر موارد فقط عندما تكون مستعدا لاستخدامه. تساعد خطوة التسجيل هذه في الحفاظ على أقل الامتيازات ضمن اشتراكك. لا يمكن للمستخدم الضار استخدام موفري الموارد غير المسجلين.

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

يتم تسجيل بعض موفري الموارد بشكل افتراضي. للحصول على قائمة بموفري الموارد المسجلين افتراضيا، راجع موفري الموارد لخدمات Azure.

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

بالنسبة للسيناريوهات الأخرى، قد تحتاج إلى تسجيل موفر موارد يدوياً.

هام

يجب ألا تمنع التعليمات البرمجية للتطبيق إنشاء موارد لموفر موارد في حالة التسجيل . عند تسجيل موفر المورد، تتم العملية بشكل فردي لكل منطقة مدعومة. لإنشاء موارد في منطقة ما، يجب إكمال التسجيل فقط في تلك المنطقة. من خلال عدم حظر موفر الموارد في حالة التسجيل، يمكن أن يستمر تطبيقك في وقت أقرب بكثير من انتظار اكتمال جميع المناطق.

يجب أن يكون لديك إذن للقيام بالعملية /register/action لموفر الموارد. يتم تضمين الإذن في دور المساهم والمالك.

لا يمكنك إلغاء تسجيل موفر المورد عندما لا يزال لديك أنواع موارد من موفر المورد هذا في اشتراكك.

أعد تسجيل موفر موارد عندما يدعم موفر الموارد المواقع الجديدة التي تحتاج إلى استخدامها.

مدخل Azure

سجل موفر الموارد

للاطلاع على جميع موفري الموارد، وحالة التسجيل لاشتراكك:

  1. سجل الدخول إلى مدخل Azure.

  2. في قائمة مدخل Microsoft Azure، ابحث عن Subscriptions. حددها من الخيارات المتوفرة.

    Screenshot of searching for subscriptions in the Azure portal.

  3. حدد الاشتراك الذي تريد عرضه.

    Screenshot of selecting a subscription in the Azure portal.

  4. في القائمة اليمنى، ضمن Settings، حدد Resource providers.

    Screenshot of selecting resource providers in the Azure portal.

  5. ابحث عن موفر الموارد الذي تريد تسجيله، وحدد Register. للاحتفاظ بالامتيازات الأقل في اشتراكك، قم فقط بتسجيل موفري الموارد الذين تكون على استعداد لاستخدامهم.

    Screenshot of registering a resource provider in the Azure portal.

    هام

    كما هو ملاحظ سابقا، لا تمنع إنشاء موارد لموفر موارد في حالة التسجيل . من خلال عدم حظر موفر الموارد في حالة التسجيل، يمكن أن يستمر تطبيقك في وقت أقرب بكثير من انتظار اكتمال جميع المناطق.

  6. أعد تسجيل موفر موارد لاستخدام المواقع التي تمت إضافتها منذ التسجيل السابق.

    Screenshot of reregistering a resource provider in the Azure portal.

عرض موفر الموارد

للاطلاع على معلومات لموفر موارد معين:

  1. سجل الدخول إلى مدخل Azure.

  2. في قائمة مدخل Azure، حدد All services.

  3. في المربع All services ، أدخل resource explorer، ثم حدد Resource Explorer.

    Screenshot of selecting All services in the Azure portal to access Resource Explorer.

  4. قم بتوسيع Providers عن طريق تحديد السهم الأيمن.

    Screenshot of expanding the Providers section in the Azure Resource Explorer.

  5. قم بتوسيع موفر الموارد ونوع المورد الذي تريد عرضه.

    Screenshot of expanding a resource provider and resource type in the Azure Resource Explorer.

  6. يتم دعم إدارة الموارد في جميع المناطق، لكن الموارد التي تنشرها قد لا تكون مدعومة في جميع المناطق. أيضاً، قد تكون هناك قيود على اشتراكك تمنعك من استخدام بعض المناطق التي تدعم المورد. يعرض مستكشف الموارد مواقع صالحة لنوع المورد.

    Screenshot of displaying valid locations for a resource type in the Azure Resource Explorer.

  7. يتوافق إصدار واجهة برمجة التطبيقات مع إصدار من عمليات REST API لموفر المورد. نظراً لأن موفر الموارد يتيح ميزات جديدة، فإنه يطلق إصداراً جديداً من REST API. يعرض مستكشف الموارد إصدارات واجهة برمجة التطبيقات صالحة لنوع المورد.

    Screenshot of displaying valid API versions for a resource type in the Azure Resource Explorer.

Azure PowerShell

للاطلاع على جميع موفري الموارد في Azure، وحالة التسجيل لاشتراكك، استخدم:

Get-AzResourceProvider -ListAvailable | Select-Object ProviderNamespace, RegistrationState

يعود الأمر:

ProviderNamespace                RegistrationState
-------------------------------- ------------------
Microsoft.ClassicCompute         Registered
Microsoft.ClassicNetwork         Registered
Microsoft.ClassicStorage         Registered
Microsoft.CognitiveServices      Registered
...

لمشاهدة جميع موفري الموارد المسجلين لاشتراكك، استخدم:

 Get-AzResourceProvider -ListAvailable | Where-Object RegistrationState -eq "Registered" | Select-Object ProviderNamespace, RegistrationState | Sort-Object ProviderNamespace

للاحتفاظ بالامتيازات الأقل في اشتراكك، قم فقط بتسجيل موفري الموارد الذين تكون على استعداد لاستخدامهم. لتسجيل موفر الموارد، استخدم:

Register-AzResourceProvider -ProviderNamespace Microsoft.Batch

يعود الأمر:

ProviderNamespace : Microsoft.Batch
RegistrationState : Registering
ResourceTypes     : {batchAccounts, operations, locations, locations/quotas}
Locations         : {West Europe, East US, East US 2, West US...}

هام

كما هو ملاحظ سابقا، لا تمنع إنشاء موارد لموفر موارد في حالة التسجيل . من خلال عدم حظر موفر الموارد في حالة التسجيل، يمكن أن يستمر تطبيقك في وقت أقرب بكثير من انتظار اكتمال جميع المناطق.

أعد تسجيل موفر موارد لاستخدام المواقع التي تمت إضافتها منذ التسجيل السابق. لإعادة التسجيل، قم بتشغيل أمر التسجيل مرة أخرى.

للاطلاع على معلومات لموفر موارد معين، استخدم:

Get-AzResourceProvider -ProviderNamespace Microsoft.Batch

يعود الأمر:

{ProviderNamespace : Microsoft.Batch
RegistrationState : Registered
ResourceTypes     : {batchAccounts}
Locations         : {West Europe, East US, East US 2, West US...}

...

لمعرفة أنواع الموارد لموفر الموارد، استخدم:

(Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes.ResourceTypeName

يعود الأمر:

batchAccounts
operations
locations
locations/quotas

يتوافق إصدار واجهة برمجة التطبيقات مع إصدار من عمليات REST API لموفر المورد. نظراً لأن موفر الموارد يتيح ميزات جديدة، فإنه يطلق إصداراً جديداً من REST API.

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

((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes | Where-Object ResourceTypeName -eq batchAccounts).ApiVersions

يعود الأمر:

2023-05-01
2022-10-01
2022-06-01
2022-01-01
2021-06-01
2021-01-01
...

يتم دعم إدارة الموارد في جميع المناطق، لكن الموارد التي تنشرها قد لا تكون مدعومة في جميع المناطق. أيضاً، قد تكون هناك قيود على اشتراكك تمنعك من استخدام بعض المناطق التي تدعم المورد.

للحصول على المواقع المدعومة لنوع مورد، استخدم.

((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes | Where-Object ResourceTypeName -eq batchAccounts).Locations

يعود الأمر:

West Europe
East US
East US 2
West US
...

Azure CLI

للاطلاع على جميع موفري الموارد في Azure، وحالة التسجيل لاشتراكك، استخدم:

az provider list --query "[].{Provider:namespace, Status:registrationState}" --out table

يعود الأمر:

Provider                         Status
-------------------------------- ----------------
Microsoft.ClassicCompute         Registered
Microsoft.ClassicNetwork         Registered
Microsoft.ClassicStorage         Registered
Microsoft.CognitiveServices      Registered
...

لمشاهدة جميع موفري الموارد المسجلين لاشتراكك، استخدم:

az provider list --query "sort_by([?registrationState=='Registered'].{Provider:namespace, Status:registrationState}, &Provider)" --out table

للاحتفاظ بالامتيازات الأقل في اشتراكك، قم فقط بتسجيل موفري الموارد الذين تكون على استعداد لاستخدامهم. لتسجيل موفر الموارد، استخدم:

az provider register --namespace Microsoft.Batch

يقوم الأمر بإرجاع رسالة تفيد بأن التسجيل مستمر.

للاطلاع على معلومات لموفر موارد معين، استخدم:

az provider show --namespace Microsoft.Batch

يعود الأمر:

{
    "id": "/subscriptions/####-####/providers/Microsoft.Batch",
    "namespace": "Microsoft.Batch",
    "registrationsState": "Registering",
    "resourceTypes:" [
        ...
    ]
}

هام

كما هو ملاحظ سابقا، لا تمنع إنشاء موارد لموفر موارد في حالة التسجيل . من خلال عدم حظر موفر الموارد في حالة التسجيل، يمكن أن يستمر تطبيقك في وقت أقرب بكثير من انتظار اكتمال جميع المناطق.

لمعرفة أنواع الموارد لموفر الموارد، استخدم:

az provider show --namespace Microsoft.Batch --query "resourceTypes[*].resourceType" --out table

يعود الأمر:

Result
---------------
batchAccounts
operations
locations
locations/quotas

يتوافق إصدار واجهة برمجة التطبيقات مع إصدار من عمليات REST API لموفر المورد. نظراً لأن موفر الموارد يتيح ميزات جديدة، فإنه يطلق إصداراً جديداً من REST API.

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

az provider show --namespace Microsoft.Batch --query "resourceTypes[?resourceType=='batchAccounts'].apiVersions | [0]" --out table

يعود الأمر:

Result
---------------
2023-05-01
2022-10-01
2022-06-01
2022-01-01
...

يتم دعم إدارة الموارد في جميع المناطق، لكن الموارد التي تنشرها قد لا تكون مدعومة في جميع المناطق. أيضاً، قد تكون هناك قيود على اشتراكك تمنعك من استخدام بعض المناطق التي تدعم المورد.

للحصول على المواقع المدعومة لنوع مورد، استخدم.

az provider show --namespace Microsoft.Batch --query "resourceTypes[?resourceType=='batchAccounts'].locations | [0]" --out table

يعود الأمر:

Result
---------------
West Europe
East US
East US 2
West US
...

Python

للاطلاع على جميع موفري الموارد في Azure، وحالة التسجيل لاشتراكك، استخدم:

import os  
from azure.identity import DefaultAzureCredential  
from azure.mgmt.resource import ResourceManagementClient  
  
# Authentication  
credential = DefaultAzureCredential()  
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]  
  
# Initialize Resource Management client  
resource_management_client = ResourceManagementClient(credential, subscription_id)  
  
# List available resource providers and select ProviderNamespace and RegistrationState  
providers = resource_management_client.providers.list()  
  
for provider in providers:  
    print(f"ProviderNamespace: {provider.namespace}, RegistrationState: {provider.registration_state}")  

يعود الأمر:

ProviderNamespace: Microsoft.AlertsManagement, RegistrationState: Registered
ProviderNamespace: Microsoft.AnalysisServices, RegistrationState: Registered
ProviderNamespace: Microsoft.ApiManagement, RegistrationState: Registered
ProviderNamespace: Microsoft.Authorization, RegistrationState: Registered
ProviderNamespace: Microsoft.Batch, RegistrationState: Registered
...

لمشاهدة جميع موفري الموارد المسجلين لاشتراكك، استخدم:

# List available resource providers with RegistrationState "Registered" and select ProviderNamespace and RegistrationState  
providers = resource_management_client.providers.list()  
registered_providers = [provider for provider in providers if provider.registration_state == "Registered"]  
  
# Sort by ProviderNamespace  
sorted_registered_providers = sorted(registered_providers, key=lambda x: x.namespace)  
  
for provider in sorted_registered_providers:  
    print(f"ProviderNamespace: {provider.namespace}, RegistrationState: {provider.registration_state}")  

للاحتفاظ بالامتيازات الأقل في اشتراكك، قم فقط بتسجيل موفري الموارد الذين تكون على استعداد لاستخدامهم. لتسجيل موفر الموارد، استخدم:

import os  
from azure.identity import DefaultAzureCredential  
from azure.mgmt.resource import ResourceManagementClient  
  
# Authentication  
credential = DefaultAzureCredential()  
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]  
  
# Initialize Resource Management client  
resource_management_client = ResourceManagementClient(credential, subscription_id)  
  
# Register resource provider  
provider_namespace = "Microsoft.Batch"  
registration_result = resource_management_client.providers.register(provider_namespace)  
  
print(f"ProviderNamespace: {registration_result.namespace}, RegistrationState: {registration_result.registration_state}")  

يعود الأمر:

ProviderNamespace: Microsoft.Batch, RegistrationState: Registered

هام

كما هو ملاحظ سابقا، لا تمنع إنشاء موارد لموفر موارد في حالة التسجيل . من خلال عدم حظر موفر الموارد في حالة التسجيل، يمكن أن يستمر تطبيقك في وقت أقرب بكثير من انتظار اكتمال جميع المناطق.

أعد تسجيل موفر موارد لاستخدام المواقع التي تمت إضافتها منذ التسجيل السابق. لإعادة التسجيل، قم بتشغيل أمر التسجيل مرة أخرى.

للاطلاع على معلومات لموفر موارد معين، استخدم:

import os  
from azure.identity import DefaultAzureCredential  
from azure.mgmt.resource import ResourceManagementClient  
  
# Authentication  
credential = DefaultAzureCredential()  
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]  
  
# Initialize Resource Management client  
resource_management_client = ResourceManagementClient(credential, subscription_id)  
  
# Get resource provider by ProviderNamespace  
provider_namespace = "Microsoft.Batch"  
provider = resource_management_client.providers.get(provider_namespace)  
  
print(f"ProviderNamespace: {provider.namespace}, RegistrationState: {provider.registration_state}\n")  
  
# Add resource types, locations, and API versions with new lines to separate results  
for resource_type in provider.resource_types:  
    print(f"ResourceType: {resource_type.resource_type}\nLocations: {', '.join(resource_type.locations)}\nAPIVersions: {', '.join(resource_type.api_versions)}\n")  

يعود الأمر:

ProviderNamespace: Microsoft.Batch, RegistrationState: Registered

ResourceType: batchAccounts
Locations: West Europe, East US, East US 2, West US, North Central US, Brazil South, North Europe, Central US, East Asia, Japan East, Australia Southeast, Japan West, Korea South, Korea Central, Southeast Asia, South Central US, Australia East, Jio India West, South India, Central India, West India, Canada Central, Canada East, UK South, UK West, West Central US, West US 2, France Central, South Africa North, UAE North, Australia Central, Germany West Central, Switzerland North, Norway East, Brazil Southeast, West US 3, Sweden Central, Qatar Central, Poland Central, East US 2 EUAP, Central US EUAP
APIVersions: 2023-05-01, 2022-10-01, 2022-06-01, 2022-01-01, 2021-06-01, 2021-01-01, 2020-09-01, 2020-05-01, 2020-03-01-preview, 2020-03-01, 2019-08-01, 2019-04-01, 2018-12-01, 2017-09-01, 2017-05-01, 2017-01-01, 2015-12-01, 2015-09-01, 2015-07-01, 2014-05-01-privatepreview

...

لمعرفة أنواع الموارد لموفر الموارد، استخدم:

# Get resource provider by ProviderNamespace  
provider_namespace = "Microsoft.Batch"  
provider = resource_management_client.providers.get(provider_namespace)  
  
# Get ResourceTypeName of the resource types  
resource_type_names = [resource_type.resource_type for resource_type in provider.resource_types]  
  
for resource_type_name in resource_type_names:  
    print(resource_type_name)  

يعود الأمر:

batchAccounts
batchAccounts/pools
batchAccounts/detectors
batchAccounts/certificates
operations
locations
locations/quotas
locations/checkNameAvailability
locations/accountOperationResults
locations/virtualMachineSkus
locations/cloudServiceSkus

يتوافق إصدار واجهة برمجة التطبيقات مع إصدار من عمليات REST API لموفر المورد. نظراً لأن موفر الموارد يتيح ميزات جديدة، فإنه يطلق إصداراً جديداً من REST API.

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

# Get resource provider by ProviderNamespace  
provider_namespace = "Microsoft.Batch"  
provider = resource_management_client.providers.get(provider_namespace)  
  
# Filter resource type by ResourceTypeName and get its ApiVersions  
resource_type_name = "batchAccounts"  
api_versions = [  
    resource_type.api_versions  
    for resource_type in provider.resource_types  
    if resource_type.resource_type == resource_type_name  
]  
  
for api_version in api_versions[0]:  
    print(api_version)  

يعود الأمر:

2023-05-01
2022-10-01
2022-06-01
2022-01-01
...

يتم دعم إدارة الموارد في جميع المناطق، لكن الموارد التي تنشرها قد لا تكون مدعومة في جميع المناطق. أيضاً، قد تكون هناك قيود على اشتراكك تمنعك من استخدام بعض المناطق التي تدعم المورد.

للحصول على المواقع المدعومة لنوع مورد، استخدم.

# Get resource provider by ProviderNamespace  
provider_namespace = "Microsoft.Batch"  
provider = resource_management_client.providers.get(provider_namespace)  
  
# Filter resource type by ResourceTypeName and get its Locations  
resource_type_name = "batchAccounts"  
locations = [  
    resource_type.locations  
    for resource_type in provider.resource_types  
    if resource_type.resource_type == resource_type_name  
]  
  
for location in locations[0]:  
    print(location)  

يعود الأمر:

West Europe
East US
East US 2
West US
...

الخطوات التالية