البرنامج التعليمي: استخدام الشرط في قوالب ARM

تعرف على كيفية نشر موارد Azure استنادًا إلى الشروط الموجودة في قالب إدارة موارد Azure (قالب ARM).

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

مخطط حالة استخدام قالب إدارة الموارد

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

  • فتح قالب بدء تشغيل سريع
  • تعديل القالب
  • نشر القالب
  • تنظيف الموارد

هذا البرنامج التعليمي يغطي فقط سيناريو أساسيًّا لاستخدام الشروط. لمزيد من المعلومات، راجع:

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

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

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

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

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

تتمثل قوالب التشغيل السريع من 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. هناك ستة موارد محددة بواسطة القالب:

    من المفيد مراجعة مرجع القالب قبل تخصيص قالب.

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

تعديل القالب

قم بإجراء تغييرَين على القالب الموجود:

  • إضافة معلمة اسم حساب تخزين. يمكن للمستخدمين تحديد اسم حساب تخزين جديد أو اسم حساب تخزين موجود.
  • إضافة معلمة جديدة تسمى newOrExisting. يستخدم النشر هذه المعلمة لتحديد ما إذا كان سيتم إنشاء حساب تخزين جديد أو استخدام حساب تخزين موجود.

فيما يلي الإجراء لإجراء التغييرات:

  1. فتح azuredeploy.json في رمز Visual Studio.

  2. استبدل الثلاثة variables('storageAccountName') في parameters('storageAccountName') القالب بأكمله.

  3. إزالة تعريف المتغير التالي:

    لقطة شاشة تسلط الضوء على التعريفات المتغيرة التي تحتاج إلى إزالتها.

  4. إضافة المعلمتَين التاليتَين إلى بداية المقطع المعلمات:

    "storageAccountName": {
      "type": "string"
    },
    "newOrExisting": {
      "type": "string",
      "allowedValues": [
        "new",
        "existing"
      ]
    },
    

    اضغط Alt+ Shift + F لتنسيق القالب في رمز Visual Studio.

    تعريف المعلمات المحدثة يبدو كما يلي:

    شرط استخدام إدارة الموارد

  5. إضافة السطر التالي إلى بداية تعريف حساب التخزين.

    "condition": "[equals(parameters('newOrExisting'),'new')]",
    

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

    يبدو تعريف حساب التخزين المحدث كما يلي:

    لقطة شاشة تعرض تعريف حساب التخزين المحدث.

  6. تحديث storageUri خاصية تعريف مورد الجهاز الظاهري بالقيمة التالية:

    "storageUri": "[format('https://{0}.blob.core.windows.net', parameters('storageAccountName'))]"
    

    هذا التغيير ضروري عند استخدام حساب تخزين موجود ضمن مجموعة موارد مختلفة.

  7. حفظ التغييرات.

نشر القالب

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

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

    ملف تحميل Cloud Shell في مدخل Microsoft Azure

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

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

    هام

    يجب أن يكون اسم حساب التخزين فريدًا عبر Azure. يجب أن يكون الاسم أحرفًا صغيرة أو أرقامًا فقط. لا يمكن أن يكون أكثر من 24 حرفًا. اسم حساب التخزين هو اسم المشروع مع مخزن ملحق. تأكد من أن اسم المشروع واسم حساب التخزين الذي تم إنشاؤه يفيان بمتطلبات اسم حساب التخزين.

    $projectName = Read-Host -Prompt "Enter a project name that is used to generate resource group name and resource names"
    $newOrExisting = Read-Host -Prompt "Create new or use existing (Enter new or existing)"
    $location = Read-Host -Prompt "Enter the Azure location (i.e. centralus)"
    $vmAdmin = Read-Host -Prompt "Enter the admin username"
    $vmPassword = Read-Host -Prompt "Enter the admin password" -AsSecureString
    $dnsLabelPrefix = Read-Host -Prompt "Enter the DNS Label prefix"
    
    $resourceGroupName = "${projectName}rg"
    $storageAccountName = "${projectName}store"
    
    New-AzResourceGroup -Name $resourceGroupName -Location $location
    New-AzResourceGroupDeployment `
        -ResourceGroupName $resourceGroupName `
        -adminUsername $vmAdmin `
        -adminPassword $vmPassword `
        -dnsLabelPrefix $dnsLabelPrefix `
        -storageAccountName $storageAccountName `
        -newOrExisting $newOrExisting `
        -TemplateFile "$HOME/azuredeploy.json"
    
    Write-Host "Press [ENTER] to continue ..."
    

    ملاحظة

    يفشل النشر إذا newOrExisting كان جديداً، ولكن حساب التخزين مع اسم حساب التخزين المحدد موجود بالفعل.

حاول إجراء نشر آخر مع newOrExisting تعيين إلى موجود وتحديد حساب تخزين موجود. لإنشاء حساب تخزين مسبق، راجع إنشاء حساب تخزين.

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

عندما لا تكون موارد Azure مطلوبة، قم بتنظيف الموارد التي قمت بنشرها عن طريق حذف مجموعة الموارد. لحذف مجموعة الموارد، حدد جربها لفتح Cloud Shell. للصق نص PowerShell، انقر بزر الماوس الأيمن فوق جزء shell، ثم حدد Paste.

$projectName = Read-Host -Prompt "Enter the same project name you used in the last procedure"
$resourceGroupName = "${projectName}rg"

Remove-AzResourceGroup -Name $resourceGroupName

Write-Host "Press [ENTER] to continue ..."

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

في هذا البرنامج التعليمي، قمت بتطوير قالب يسمح للمستخدمين بالاختيار بين إنشاء حساب تخزين جديد واستخدام حساب تخزين موجود. لمعرفة كيفية استرداد الأسرار من Azure Key Vault واستخدام الأسرار ككلمات مرور في نشر القالب، راجع: