Azure Resource Manager (ARM) Templates

From binaryoption
Jump to navigation Jump to search
Баннер1

```wiki

قوالب Azure Resource Manager (ARM) للمبتدئين

قوالب Azure Resource Manager (ARM) هي ملفات JSON تحدد البنية الأساسية والموارد التي تحتاجها لتوزيع تطبيقك على منصة Azure. تعتبر قوالب ARM طريقة قوية وفعالة لـ Infrastructure as Code (IaC)، مما يسمح لك بأتمتة عمليات التوزيع، وضمان الاتساق، وتقليل الأخطاء اليدوية. هذا المقال يهدف إلى تقديم مقدمة شاملة لقوالب ARM للمبتدئين، مع التركيز على المفاهيم الأساسية، وبناء القوالب، وتوزيعها، وأفضل الممارسات.

ما هي قوالب ARM ولماذا نستخدمها؟

تقليدياً، كان توزيع موارد Azure يتم من خلال مدخل Azure (Azure Portal) يدوياً. هذه الطريقة سهلة الاستخدام للتجارب الأولية، ولكنها غير قابلة للتطوير وغير فعالة للبيئات المعقدة أو المتكررة. قوالب ARM تحل هذه المشكلة من خلال توفير طريقة وصفية لتعريف البنية التحتية الخاصة بك.

فوائد استخدام قوالب ARM:

  • التكرار والاتساق: تضمن قوالب ARM توزيع نفس البنية التحتية بشكل متكرر، مما يقلل من الأخطاء والتناقضات.
  • الأتمتة: يمكن أتمتة عملية التوزيع باستخدام أدوات مثل Azure DevOps أو Azure CLI، مما يوفر الوقت والجهد.
  • التحكم بالإصدار: يمكن تخزين قوالب ARM في مستودعات التحكم بالإصدار (مثل Git)، مما يسمح بتتبع التغييرات والرجوع إلى الإصدارات السابقة.
  • إعادة الاستخدام: يمكن إعادة استخدام القوالب لتوزيع نفس البنية التحتية في بيئات مختلفة (مثل التطوير والاختبار والإنتاج).
  • التوثيق: تعمل القوالب كتوثيق للبنية التحتية الخاصة بك، مما يسهل فهمها وصيانتها.

المفاهيم الأساسية في قوالب ARM

قبل البدء في كتابة قوالب ARM، من المهم فهم المفاهيم الأساسية:

  • الموارد (Resources): هي المكونات الأساسية للبنية التحتية الخاصة بك، مثل Virtual Machines، وStorage Accounts، وVirtual Networks.
  • المعلمات (Parameters): تسمح لك بتخصيص القالب دون تعديل الكود نفسه. يمكنك تحديد قيم افتراضية للمعلمات، أو السماح للمستخدم بتحديدها عند التوزيع.
  • المتغيرات (Variables): تسمح لك بتخزين القيم التي يمكن استخدامها في جميع أنحاء القالب. تستخدم عادةً لتخزين القيم المحسوبة أو القيم التي تتغير بشكل متكرر.
  • الدوال (Functions): تسمح لك بإجراء عمليات على القيم في القالب. تشمل الدوال الشائعة دمج السلاسل، وتحويل الأنواع، والوصول إلى خصائص الموارد الأخرى.
  • الحلقات (Loops): تسمح لك بتكرار مجموعة من الموارد أو العمليات. تستخدم عادةً لإنشاء موارد متعددة بنفس التهيئة.
  • الشروط (Conditions): تسمح لك بتحديد ما إذا كان يجب توزيع مورد بناءً على شرط معين. تستخدم عادةً لتوزيع موارد مختلفة في بيئات مختلفة.
  • المخرجات (Outputs): تسمح لك بإرجاع القيم من القالب بعد التوزيع. يمكن استخدام المخرجات للوصول إلى خصائص الموارد التي تم توزيعها.

بناء قالب ARM بسيط

لنبدأ بإنشاء قالب ARM بسيط لتوزيع Virtual Machine في Azure. افتح محرر نصوص وأدخل الكود التالي:

```json {

 "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
 "contentVersion": "1.0.0.0",
 "parameters": {
   "vmName": {
     "type": "string",
     "defaultValue": "myVM"
   },
   "location": {
     "type": "string",
     "defaultValue": "eastus"
   }
 },
 "resources": [
   {
     "type": "Microsoft.Compute/virtualMachines",
     "apiVersion": "2023-03-01",
     "name": "[parameters('vmName')]",
     "location": "[parameters('location')]",
     "properties": {
       "hardwareProfile": {
         "vmSize": "Standard_DS1_v2"
       },
       "storageProfile": {
         "imageReference": {
           "publisher": "MicrosoftWindowsServer",
           "offer": "WindowsServer",
           "sku": "2019-Datacenter",
           "version": "latest"
         }
       },
       "osProfile": {
         "computerName": "[parameters('vmName')]",
         "adminUsername": "adminuser",
         "adminPassword": "StrongPassword!"
       },
       "networkProfile": {
         "networkInterfaces": [
           {
             "id": "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/networkInterfaces/myNIC"
           }
         ]
       }
     }
   }
 ]

} ```

شرح الكود:

  • `$schema`: يحدد مخطط JSON المستخدم للتحقق من صحة القالب.
  • `contentVersion`: يحدد إصدار القالب.
  • `parameters`: يحدد المعلمات التي يمكن تخصيصها عند التوزيع. في هذا المثال، لدينا معلمات لاسم الجهاز الظاهري والموقع.
  • `resources`: يحدد الموارد التي سيتم توزيعها. في هذا المثال، نقوم بتوزيع جهاز ظاهري واحد.
  • `type`: يحدد نوع المورد (في هذه الحالة، Microsoft.Compute/virtualMachines).
  • `apiVersion`: يحدد إصدار واجهة برمجة التطبيقات (API) المستخدمة للمورد.
  • `name`: يحدد اسم المورد.
  • `location`: يحدد موقع المورد.
  • `properties`: يحدد خصائص المورد.

توزيع قالب ARM

بعد إنشاء قالب ARM، يمكنك توزيعه باستخدام Azure Portal أو Azure CLI أو Azure PowerShell.

التوزيع باستخدام Azure CLI:

1. سجل الدخول إلى Azure CLI: `az login` 2. قم بإنشاء مجموعة موارد: `az group create --name myResourceGroup --location eastus` 3. قم بتوزيع القالب: `az deployment group create --resource-group myResourceGroup --template-file myTemplate.json`

استبدل `myResourceGroup` باسم مجموعة الموارد الخاصة بك و `myTemplate.json` باسم ملف القالب الخاص بك.

أفضل الممارسات لكتابة قوالب ARM

  • استخدام المعلمات والمتغيرات: اجعل قوالبك قابلة للتخصيص وإعادة الاستخدام باستخدام المعلمات والمتغيرات.
  • تقسيم القوالب إلى أجزاء أصغر: إذا كان القالب الخاص بك كبيراً ومعقداً، فقم بتقسيمه إلى أجزاء أصغر وأكثر قابلية للإدارة. يمكنك استخدام ميزة Nested Templates لتحقيق ذلك.
  • التعليق على الكود: أضف تعليقات إلى الكود لشرح الغرض من كل قسم.
  • التحقق من صحة القالب: تحقق من صحة القالب قبل التوزيع للتأكد من أنه لا يحتوي على أخطاء. يمكنك استخدام Azure Resource Manager Tools للتحقق من الصحة.
  • استخدام التحكم بالإصدار: خزن قوالبك في مستودع التحكم بالإصدار لتتبع التغييرات والرجوع إلى الإصدارات السابقة.
  • الالتزام بمعايير التسمية: اتبع معايير تسمية متسقة لجميع الموارد.

مواضيع متقدمة

  • Nested Templates (القوالب المتداخلة): تسمح لك بتقسيم قالب كبير إلى قوالب أصغر وأكثر قابلية للإدارة.
  • Deployments (عمليات التوزيع): تسمح لك بإدارة عمليات التوزيع وتنفيذها.
  • Managed Applications (التطبيقات المُدارة): تسمح لك بتجميع قوالب ARM وموارد أخرى في حزمة واحدة قابلة للتوزيع.
  • Policy (السياسات): تسمح لك بفرض قواعد ومعايير على موارد Azure.
  • Bicep (بايسب): لغة إعلانية أسهل وأكثر إيجازًا من JSON لـ ARM.

=== الروابط ذات الصلة ###

الخيارات الثنائية والتحليل الفني (روابط ذات صلة)

== ```

ابدأ التداول الآن

سجّل في IQ Option (الحد الأدنى للإيداع 10 دولار) افتح حساباً في Pocket Option (الحد الأدنى للإيداع 5 دولار)

انضم إلى مجتمعنا

اشترك في قناة Telegram الخاصة بنا @strategybin لتصلك: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات اتجاهات السوق ✓ مواد تعليمية للمبتدئين

Баннер