موفرو موارد 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
سجل موفر الموارد
للاطلاع على جميع موفري الموارد، وحالة التسجيل لاشتراكك:
سجل الدخول إلى مدخل Azure.
في قائمة مدخل Microsoft Azure، ابحث عن Subscriptions. حددها من الخيارات المتوفرة.
حدد الاشتراك الذي تريد عرضه.
في القائمة اليمنى، ضمن Settings، حدد Resource providers.
ابحث عن موفر الموارد الذي تريد تسجيله، وحدد Register. للاحتفاظ بالامتيازات الأقل في اشتراكك، قم فقط بتسجيل موفري الموارد الذين تكون على استعداد لاستخدامهم.
هام
كما هو ملاحظ سابقا، لا تمنع إنشاء موارد لموفر موارد في حالة التسجيل . من خلال عدم حظر موفر الموارد في حالة التسجيل، يمكن أن يستمر تطبيقك في وقت أقرب بكثير من انتظار اكتمال جميع المناطق.
أعد تسجيل موفر موارد لاستخدام المواقع التي تمت إضافتها منذ التسجيل السابق.
عرض موفر الموارد
للاطلاع على معلومات لموفر موارد معين:
سجل الدخول إلى مدخل Azure.
في قائمة مدخل Azure، حدد All services.
في المربع All services ، أدخل resource explorer، ثم حدد Resource Explorer.
قم بتوسيع Providers عن طريق تحديد السهم الأيمن.
قم بتوسيع موفر الموارد ونوع المورد الذي تريد عرضه.
يتم دعم إدارة الموارد في جميع المناطق، لكن الموارد التي تنشرها قد لا تكون مدعومة في جميع المناطق. أيضاً، قد تكون هناك قيود على اشتراكك تمنعك من استخدام بعض المناطق التي تدعم المورد. يعرض مستكشف الموارد مواقع صالحة لنوع المورد.
يتوافق إصدار واجهة برمجة التطبيقات مع إصدار من عمليات REST API لموفر المورد. نظراً لأن موفر الموارد يتيح ميزات جديدة، فإنه يطلق إصداراً جديداً من REST API. يعرض مستكشف الموارد إصدارات واجهة برمجة التطبيقات صالحة لنوع المورد.
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
...
الخطوات التالية
- للتعرف على إنشاء قوالب Resource Manager، راجع تأليف قوالب Azure Resource Manager.
- لعرض مخططات قالب موفر الموارد، راجع مرجع القالب.
- للحصول على قائمة تعين موفري الموارد لخدمات Azure، راجع موفرو الموارد لخدمات Azure.
- لعرض عمليات موفر الموارد، راجع Azure REST API.