البرنامج التعليمي: إنشاء قوالب ARM مع موارد تابعة

التعرف على كيفية إنشاء Azure Resource Manager (قالب ARM) لنشر موارد متعددة وتكوين ترتيب النشر. بعد إنشاء القالب، يمكنك نشره باستخدام Cloud Shell من مدخل Microsoft Azure.

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

رسم تخطيطي يوضح ترتيب توزيع الموارد التابعة في قالب Resource Manager.

يغطي هذا البرنامج التعليمي المهام التالية:

  • فتح قالب "تشغيل سريع"
  • استكشاف القالب
  • نشر القالب

إذا لم يكن لديك اشتراك في Azure، فأنشئ free account قبل البدء.

بالنسبة إلى الوحدة النمطية Learn التي تغطي تبعيات الموارد، راجع إدارة عمليات التوزيع السحابية المعقدة باستخدام ميزات قالب ARM المتقدمة.

المتطلبات الأساسية

لإكمال هذه المقالة، تحتاج إلى الآتي:

فتح قالب "تشغيل سريع"

تتمثل قوالب التشغيل السريع من Azure في مستودع لقوالب ARM. بدلاً من إنشاء قالب من البداية، يمكنك العثور على نموذج قالب وتخصيصه. يسمى القالب المستخدم في هذا البرنامج التعليمي نشر جهاز ظاهري بسيط يعمل بنظام Windows.

  1. في Visual Studio Code، حدد ملف>فتح ملف.

  2. في اسم الملف، أَلصِق عنوان URL الآتي:

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
    
  3. حدد فتح لفتح الملف.

  4. حدد ملف>حفظ باسم، ثم احفظ نسخة من الملف في الكمبيوتر المحلي باسم azuredeploy.json.

استكشاف القالب

عند استكشاف القالب في هذا القسم، حاول الإجابة عن الأسئلة الآتية:

  • كم عدد موارد Azure المحددة في هذا القالب؟
  • أحد الموارد هو حساب تخزين Azure. هل يبدو التعريف هو نفسه المستخدم في البرنامج التعليمي الأخير؟
  • هل يمكنك العثور على مراجع القالب للموارد المحددة في هذا القالب؟
  • هل يمكنك العثور على تبعيات الموارد؟
  1. من Visual Studio Code، قم بطي العناصر حتى ترى عناصر المستوى الأول وعناصر المستوى الثاني فقط داخل resources:

    لقطة شاشة ل Visual Studio Code تعرض قالب ARM مع عناصر مطوية.

    هناك ستة موارد محددة بواسطة القالب:

  2. قم بتوسيع المورد الأول. عبارة عن حساب تخزين. قارن تعريف المورد بمرجع القالب.

    لقطة شاشة ل Visual Studio Code تعرض تعريف حساب التخزين في قالب ARM.

  3. قم بتوسيع المورد الثاني. نوع المورد هو Microsoft.Network/publicIPAddresses. قارن تعريف المورد بمرجع القالب.

    لقطة شاشة ل Visual Studio Code تعرض تعريف عنوان IP العام في قالب ARM.

  4. قم بتوسيع المورد الثالث. نوع المورد هو Microsoft.Network/networkSecurityGroups. قارن تعريف المورد بمرجع القالب.

    لقطة شاشة ل Visual Studio Code تعرض تعريف مجموعة أمان الشبكة في قالب ARM.

  5. قم بتوسيع المورد الرابع. نوع المورد هو Microsoft.Network/virtualNetworks:

    لقطة شاشة ل Visual Studio Code تعرض تعريف الشبكة الظاهرية مع عنصر dependsOn في قالب ARM.

    يتيح لك العنصر dependsOn تعريف مورد واحد بوصفه تابعاً لمورد واحد أو أكثر. يعتمد هذا المورد على مورد واحد آخر:

    • Microsoft.Network/networkSecurityGroups
  6. قم بتوسيع المورد الخامس. نوع المورد هو Microsoft.Network/networkInterfaces. يعتمد المورد على موردين آخرين:

    • Microsoft.Network/publicIPAddresses
    • Microsoft.Network/virtualNetworks
  7. قم بتوسيع المورد السادس. هذا المورد عبارة عن جهاز ظاهري. يعتمد على موردين آخرين:

    • Microsoft.Storage/storageAccounts
    • Microsoft.Network/networkInterfaces

يوضح الرسم التخطيطي الآتي الموارد ومعلومات التبعية لهذا القالب:

رسم تخطيطي يوضح علاقات التبعية بين الموارد في قالب ARM المعروض في Visual Studio Code.

من خلال تحديد التبعيات، ينشر Resource Manager الحل بفعالية. ينشر حساب التخزين وعنوان IP العام والشبكة الظاهرية بالتوازي نظراً إلى أنهم ليس لهم تبعيات. بعد نشر عنوان IP العام والشبكة الظاهرية، يتم إنشاء واجهة الشبكة. عند نشر جميع الموارد الأخرى، ينشر Resource Manager الجهاز الظاهري.

نشر القالب

  1. تسجيل الدخول إلى Cloud Shell.

  2. يمكنك اختيار بيئتك المفضلة عن طريق تحديد PowerShell أو Bash (لـ CLI) في الزاوية العلوية اليسرى. يلزم إعادة تشغيل Shell عند التبديل.

    لقطة شاشة لمدخل Microsoft Azure Cloud Shell مع تمييز خيار ملف التحميل.

  3. حدد Upload/download files، ثم حدد Upload. راجع لقطة الشاشة السابقة. حدد الملف الذي قمت بحفظه سابقاً. بعد تحميل الملف، يُمكنك استخدام الأمر ls وcat للتحقق من تحميل الملف بنجاح.

  4. شغّل البرنامج النصي PowerShell الآتي لنشر القالب.

    echo "Enter a project name that is used to generate resource group name:" &&
    read projectName &&
    echo "Enter the location (i.e. centralus):" &&
    read location &&
    echo "Enter the virtual machine admin username:" &&
    read adminUsername &&
    echo "Enter the DNS label prefix:" &&
    read dnsLabelPrefix &&
    resourceGroupName="${projectName}rg" &&
    az group create --name $resourceGroupName --location $location &&
    az deployment group create --resource-group $resourceGroupName --template-file "$HOME/azuredeploy.json" --parameters adminUsername=$adminUsername dnsLabelPrefix=$dnsLabelPrefix
    
  5. RDP إلى الجهاز الظاهري للتحقق من إنشاء الجهاز الظاهري بنجاح.

تنظيف الموارد

عندما لا تكون موارد Azure مطلوبة، قم بتنظيف الموارد التي قمت بنشرها عن طريق حذف مجموعة الموارد.

  1. من مدخل Azure، حدد مجموعة الموارد من القائمة اليمنى.
  2. أدخل اسم مجموعة الموارد في الحقل Filter by name.
  3. حدد اسم مجموعة الموارد. سترى إجمالي ستة موارد في مجموعة الموارد.
  4. حدد Delete resource group من القائمة.

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

في هذا البرنامج التعليمي، قمت بتطوير قالب ونشره لإنشاء جهاز ظاهري وشبكة ظاهرية والموارد التابعة. للتعرف على كيفية استخدام البرامج النصية للنشر لتنفيذ عمليات ما قبل/ بعد النشر، راجع: