كيف يعمل Azure Resource Manager
تتبّع طلب إنشاء مورد عبر طبقة ARM، وتعرّف على مجموعات الموارد بصفتها حاويات منطقية، وتعلّم عن التحكم في الوصول المستند إلى الأدوار وسجل التدقيق في ARM.
كيف يعمل Azure Resource Manager درس مجاني في Cloud & IT Cert Prep على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cloud & IT Cert Prep، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cloud & IT Cert Prep 4 دروس في المجموع.
ما هو Azure Resource Manager؟
إن Azure Resource Manager (ARM) خدمة النشر والإدارة في Azure. فكل إجراء تتخذونه في بوابة Azure أو CLI أو PowerShell أو REST API يمر عبر ARM. ويعمل ARM كطبقة تحكم مركزية تتولى مصادقة كل عملية على مورد وتفويضها وتوجيهها.
تدفق طلبات ARM
عند إرسال طلب لإنشاء مورد، يعترض ARM الطلب، ويتحقق من هويتكم عبر Microsoft Entra ID، ويتحقق من أذونات RBAC، ويطبّق أي قواعد Azure Policy، ثم يمرّر الطلب الذي تم التحقق منه إلى موفر الموارد المناسب. ينفّذ موفر الموارد (مثل Microsoft.Compute) العملية الفعلية ويعيد النتيجة إلى ARM.
# Example: creating a VM via Azure CLI (routed through ARM)
az vm create \
--resource-group MyRG \
--name MyVM \
--image UbuntuLTS \
--admin-username azureuserموفرو الموارد وأنواع الموارد
تُتاح خدمات Azure من خلال موفري الموارد، ويُحدَّد كل منها بمساحة أسماء مثل Microsoft.Storage أو Microsoft.Network. يجب تسجيل كل نوع مورد (مثل Microsoft.Storage/storageAccounts) في اشتراككم قبل أن تتمكنوا من إنشاء مثيلات منه. يُسجَّل معظم الموفّرين تلقائيًا عند استخدام الخدمة المرتبطة بهم للمرة الأولى.
# List registered resource providers
az provider list --query "[?registrationState=='Registered'].namespace" -o table
# Register a provider manually
az provider register --namespace Microsoft.Insightsمجموعات الموارد كحاويات منطقية
مجموعة الموارد هي حاوية منطقية تضم موارد Azure المرتبطة. تشترك جميع الموارد في المجموعة في دورة الحياة نفسها، إذ يمكنكم نشرها وتحديثها وحذفها معًا. تعمل مجموعات الموارد أيضًا كنطاق افتراضي لتعيينات RBAC وتتبع التكاليف. يجب أن ينتمي كل مورد من موارد Azure إلى مجموعة موارد واحدة فقط.
# Create a resource group
az group create --name MyResourceGroup --location eastus
# List all resources in a resource group
az resource list --resource-group MyResourceGroup -o tableARM والتحكم في الوصول المستند إلى الأدوار
يفرض ARM التحكم في الوصول المستند إلى الأدوار (RBAC) على كل نطاق: مجموعة الإدارة أو الاشتراك أو مجموعة الموارد أو المورد الفردي. تغطي الأدوار المضمّنة مثل Owner وContributor وReader معظم السيناريوهات. يقيّم ARM تعيينات الأدوار بدءًا من النطاق الأعلى نزولًا، ويمكن لتعيينات المنع حظر الأذونات الموروثة.
# Assign Contributor role at resource group scope
az role assignment create \
--assignee user@contoso.com \
--role 'Contributor' \
--resource-group MyResourceGroupسجل تدقيق ARM
يُسجَّل كل إجراء يمر عبر ARM في Azure Activity Log. يسجّل سجل النشاط من نفّذ العملية، والمورد الذي تأثر بها، ووقت حدوثها، وما إذا نجحت العملية أو فشلت. تُحتفظ بسجلات النشاط لمدة 90 يومًا افتراضيًا، ويمكن أرشفتها في Storage Account أو بثّها إلى Log Analytics للاحتفاظ بها مدة أطول.
# Query recent ARM operations in activity log
az monitor activity-log list \
--resource-group MyResourceGroup \
--max-events 10 \
--query '[].{time:eventTimestamp, caller:caller, operation:operationName.value, status:status.value}' \
-o tableعمليات النشر التصريحية مقابل الإجرائية
يدعم ARM أسلوبي النشر التصريحي والإجرائي. تستخدم عمليات النشر التصريحية قوالب ARM أو Bicep لوصف الحالة النهائية المطلوبة؛ ويحدّد ARM العمليات اللازمة للوصول إليها. أما عمليات النشر الإجرائية فتستخدم أوامر CLI أو PowerShell خطوةً بخطوة. ويُفضَّل النشر التصريحي لقابليته للتكرار، والتحكم في الإصدارات، وتحقيق خاصية idempotency.
# Imperative: create storage account step-by-step
az storage account create \
--name mystorageaccount \
--resource-group MyRG \
--location eastus \
--sku Standard_LRS
# Declarative: deploy via ARM template
az deployment group create \
--resource-group MyRG \
--template-file azuredeploy.json \
--parameters @azuredeploy.parameters.jsonأنماط النشر: الكامل والتزايدي
يمكن تشغيل عمليات نشر قوالب ARM في وضعين. يضيف الوضع التزايدي (الافتراضي) الموارد المعرّفة في القالب أو يحدّثها، مع ترك الموارد الموجودة مسبقًا في المجموعة والتي لا يتضمنها القالب دون تغيير. أما الوضع الكامل فيحذف أي موارد في مجموعة الموارد غير معرّفة في القالب، بحيث تطابق المجموعة القالب تمامًا — لذا يُستخدم بحذر.
# Incremental deployment (default)
az deployment group create \
--resource-group MyRG \
--template-file azuredeploy.json \
--mode Incremental
# Complete deployment (deletes unlisted resources!)
az deployment group create \
--resource-group MyRG \
--template-file azuredeploy.json \
--mode Completeبنية قالب ARM
قالب ARM هو مستند JSON يتكوّن من ستة أقسام رئيسية: $schema (إصدار القالب)، وcontentVersion، وparameters (المدخلات)، وvariables (القيم المحسوبة)، وresources (ما سيتم نشره)، وoutputs (القيم التي سيتم إرجاعها). تحتوي مصفوفة الموارد على كائن واحد لكل مورد من موارد Azure، ويحدّد كل كائن النوع وإصدار API والاسم والموقع والخصائص.
{
'$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#',
'contentVersion': '1.0.0.0',
'parameters': {},
'variables': {},
'resources': [
{
'type': 'Microsoft.Storage/storageAccounts',
'apiVersion': '2023-01-01',
'name': 'mystorageaccount',
'location': '[resourceGroup().location]',
'sku': { 'name': 'Standard_LRS' },
'kind': 'StorageV2'
}
],
'outputs': {}
}إدارة التبعيات في ARM
عند نشر موارد متعددة، يمكن لـ ARM نشر الموارد المستقلة بالتوازي افتراضيًا، مما يسرّع عمليات النشر. وعندما يعتمد مورد على مورد آخر (مثل حاجة جهاز ظاهري إلى NIC، وحاجة NIC إلى VNet)، تُعلن التبعية صراحةً باستخدام dependsOn. يحل ARM مخطط التبعيات ويرتّب العمليات وفقًا لذلك.
{
'type': 'Microsoft.Network/networkInterfaces',
'name': 'myNic',
'dependsOn': [
'[resourceId("Microsoft.Network/virtualNetworks", "myVNet")]'
],
'properties': {
'ipConfigurations': [{
'name': 'ipconfig1',
'properties': {
'subnet': {
'id': '[resourceId("Microsoft.Network/virtualNetworks/subnets", "myVNet", "mySubnet")]'
}
}
}]
}
}تحليل النشر باستخدام what-if
قبل تشغيل عملية نشر، استخدموا عملية what-if لمعاينة التغييرات التي سيجريها ARM دون تنفيذها فعليًا. يسرد الناتج الموارد التي سيتم إنشاؤها أو تعديلها أو حذفها، مع ترميز لوني حسب نوع التغيير. وتكون هذه الميزة مفيدة خصوصًا قبل تشغيل عملية نشر بالوضع الكامل أو إجراء تغييرات على بيئات الإنتاج.
# Preview changes before deploying
az deployment group what-if \
--resource-group MyRG \
--template-file azuredeploy.json \
--parameters @params.jsonتحقق سريع
اختبروا مدى فهمكم لمفاهيم Microsoft Azure Fundamentals (AZ-900) الواردة في هذا الدرس.
مراجعة الدرس
تعلّمتم في هذا الدرس أن Azure Resource Manager هو طبقة الإدارة المركزية لجميع موارد Azure، وأن مجموعات الموارد حاويات منطقية تجمع الموارد التي تشترك في دورة حياة واحدة، وأن عمليات نشر ARM يمكن أن تعمل في الوضع التزايدي أو الكامل مع دعم المعاينة باستخدام what-if. بعد ذلك، سنستكشف كتابة قوالب ARM.
الأسئلة الشائعة
هل درس «كيف يعمل Azure Resource Manager» مجاني؟
نعم — نص درس «كيف يعمل Azure Resource Manager» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cloud & IT Cert Prep، انتقل إلى CoddyKit PRO. تتضمن دورة Cloud & IT Cert Prep 4 دروس في المجموع.
ماذا ستتعلم في «كيف يعمل Azure Resource Manager»؟
تتبّع طلب إنشاء مورد عبر طبقة ARM، وتعرّف على مجموعات الموارد بصفتها حاويات منطقية، وتعلّم عن التحكم في الوصول المستند إلى الأدوار وسجل التدقيق في ARM. تتمرن على Cloud & IT Cert Prep مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cloud & IT Cert Prep؟
لا تُشترط خبرة سابقة. Cloud & IT Cert Prep على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «كيف يعمل Azure Resource Manager»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cloud & IT Cert Prep هذا؟
نعم. كل درس في Cloud & IT Cert Prep يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- كيف يعمل Azure Resource Manager
- كتابة قوالب ARM
- Bicep: IaC حديث لـ Azure
- Terraform على Azure