تدريب - إنشاء قالب Azure Resource Manager ونشره

مكتمل

إشعار

عند تنشيط بيئة الاختبار المعزولة لأول مرة والموافقة على الشروط، يرتبط حسابك في Microsoft بدليل جديد في Azure يسمى Microsoft Learn Sandbox. كما تتم إضافة اشتراك خاص يسمى اشتراك Concierge.

في هذا التمرين، ستقوم بإنشاء قالب Azure Resource Manager (قالب ARM)، ونشره في Azure، ثم تحديث قالب ARM هذا لإضافة المعلمات والمخرجات.

يستخدم هذا التمرين أدوات Azure Resource Manager الخاصة بـ Visual Studio Code. تأكد من تثبيت هذا الملحق في التعليمات البرمجية Visual Studio قبل بدء التمرين.

إنشاء قالب ARM

  1. افتح Visual Studio Code وأنشئ ملفا جديدا يسمى azuredeploy.json.

  2. يأتي ملحق قالب VISUAL Studio Code ARM مكوّنًا مع قصاصات برمجية لمساعدتك في تطوير القوالب. لنبدأ بإضافة قالب فارغ. في السطر الأول من الملف، أدخل arm.

  3. يعرض Visual Studio Code تلقائيا العديد من الخيارات المحتملة التي تبدأ ب arm!. قم بتحديد قالب Azure Resource Manager (ARM). يعالج Visual Studio Code تلقائيا المخططات واللغات للقالب الخاص بك.

    Visual Studio Code azuredeploy.json file showing the snippet choices for Azure Resource Manager templates.

    الملف الخاص بك الآن يبدو مثل هذا:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {},
      "functions": [],
      "variables": {},
      "resources": [],
      "outputs": {}
    }
    

    لاحظ أن هذا الملف يحتوي على كافة الأقسام من قالب ARM التي وصفناها في الوحدة السابقة.

  4. احفظ التغييرات على الملف عن طريق الضغط على Ctrl +S.

نشر قالب ARM إلى Azure

لنشر هذا القالب إلى Azure، تحتاج إلى تسجيل الدخول إلى حساب Azure الخاص بك من محطة Visual Studio Code. تأكد من تثبيت أدوات Azure CLI، وتسجيل الدخول باستخدام نفس الحساب الذي استخدمته لتنشيط آلية تحديد الصلاحيات.

  1. حدد Terminal > New Terminal لفتح نافذة الوحدة الطرفية.

  2. إذا كان شريط الأوامر من نافذة Terminal يقول bash، لديك shell الصحيح للعمل منه ويمكنك التخطي إلى القسم التالي.

  3. إذا لم يكن الأمر كما هو، فحدد القائمة المنسدلة واختر تحديد ملف التعريف الافتراضي.

    Screenshot of the Visual Studio Code terminal window with bash in the drop-down.

  4. حدد Git: Bash.

    Screenshot of the Visual Studio Code terminal window showing the select shell drop-down.

  5. حدد Terminal > New Terminal لفتح نافذة الوحدة الطرفية لـ shell.

تسجيل الدخول إلى Azure

  1. في إطار النافذة terminal، شغِّل هذا الأمر لتسجيل الدخول إلى Azure.

    az login
    
  2. يفتح متصفح بحيث يمكنك تسجيل الدخول إلى حسابك. بعد تسجيل الدخول، يتم عرض قائمة الاشتراكات المقترنة بهذا الحساب في المحطة الطرفية. إذا نشَّطت بيئة الاختبار المعزولة، يجب أن تشاهد واحدة تسمى اشتراك Concierge. استخدم هذا لباقي التدريب.

  3. في bash shell، شغِّل الأمر التالي لتعيين الاشتراك الافتراضي لكافة أوامر Azure CLI التي تقوم بتشغيلها في جلسة العمل هذه.

    az account set --subscription "Concierge Subscription"
    

    إذا كنت قد استخدمت أكثر من بيئة اختبار معزولة في الآونة الأخيرة، فقد يكون هناك أكثر مناشتراك Concierge واحد مدرج. إذا كان الأمر كذلك، استخدِم الخطوتين التاليتَين لتحديد الاشتراك الافتراضي وتعيينه.

    1. شغِّل الأمر التالي للحصول على معرفات اشتراك Concierge.
     az account list \
       --refresh \
       --query "[?contains(name, 'Concierge Subscription')].id" \
       --output table
    
    1. قم بتعيين الاشتراك الافتراضي عن طريق تشغيل الأمر التالي، واستبدل {معرف اشتراكك} بأحدث معرف اشتراك Concierge.
    az account set --subscription {your subscription ID}
    

تعيين مجموعة الموارد الافتراضية

عن طريق تعيين مجموعة الموارد الافتراضية إلى تلك التي تم إنشاؤها عند تنشيط مربع الحماية، يمكنك حذف تلك المعلمة من أوامرAzure CLI في هذا التمرين. لتعيين مجموعة الموارد، شغِّل الأمر التالي.

az configure --defaults group=<rgn>[sandbox resource group name]</rgn>

نشر القالب إلى Azure

شغِّل الأوامر التالية لنشر قالب ARM إلى Azure. لا يحتوي قالب ARM على أي موارد حتى الآن، لذلك لن ترى الموارد التي تم إنشاؤها. يجب أن تحصل على توزيع ناجح.

templateFile="azuredeploy.json"
today=$(date +"%d-%b-%Y")
DeploymentName="blanktemplate-"$today

az deployment group create \
 --name $DeploymentName \
 --template-file $templateFile

يقوم القسم العلوي من التعليمات البرمجية السابقة بتعيين متغيرات CLI Azure التي تتضمن المسار إلى ملف القالب للنشر واسم النشر. القسم السفلي، az deployment group create، يوزع القالب إلى Azure. لاحظ أن اسم النشر blanktemplate يصحَبه التاريخ كلاحقة.

يجب أن تشاهد Running... في المحطة الطرفية.

لنشر هذا القالب إلى Azure، تحتاج إلى تسجيل الدخول إلى حساب Azure الخاص بك من محطة Visual Studio Code. تأكد من تثبيت Azure PowerShell Tools من Visual Studio Code Extensions، وسجل الدخول إلى نفس الحساب الذي قام بتنشيط بيئة الاختبار المعزولة.

  1. في شريط الأوامر، حدد Terminal > New Terminal لفتح نافذة PowerShell.

  2. إذا كان شريط الأوامر من نافذة المحطة الطرفية يعرض PowerShell، فلديك shell الصحيح الذي يمكنك العمل منه، ويمكنك التخطي إلى القسم التالي.

    Screenshot of the Visual Studio Code terminal window with pwsh terminal selected.

    1. إذا لم يكن الأمر كذلك، حدد السهم لأسفل وفي القائمة المنسدلة اختر PowerShell. إذا كان هذا الخيار مفقودا، عندها حدد تحديد ملف تعريف افتراضي.

    2. في حقل الإدخال، مرِر لأسفل وحدِد PowerShell.

      Screenshot of the Visual Studio Code terminal window showing the select shell drop-down.

    3. حدد Terminal > New Terminal لفتح نافذة الوحدة الطرفية لـ PowerShell.

تسجيل الدخول إلى Azure باستخدام Azure PowerShell

  1. من المحطة الطرفية في Visual Studio Code، قم بتشغيل الأمر التالي لتسجيل الدخول إلى Azure. يفتح المتصفح بحيث يمكنك تسجيل الدخول إلى حسابك.

    Connect-AzAccount
    

    تلميح

    الوحدة Az PowerShell هو استبدال AzureRM وهو الإصدار المستحسن لاستخدامها للتفاعل مع Azure.

  2. سجل الدخول باستخدام الحساب الذي استخدمته لتنشيط بيئة الاختبار المعزولة. بعد تسجيل الدخول، يسرد Visual Studio Code الاشتراكات المقترنة بحسابك في نافذة المحطة الطرفية. إذا قمت بتنشيط بيئة الاختبار المعزولة، سترى كتلة التعليمات البرمجية التي تحتوي على "name": "Concierge Subscription". هذا هو الاشتراك ليستخدم لبقية التمرين.

تعيين الاشتراك الافتراضي لكافَّة أوامر PowerShell في جلسة العمل هذه

  1. تشغيل الأمر التالي للحصول على الاشتراك(ات) الخاص بك و معرف(ات)هم. يقع مُعرِّف الاشتراك في العمود الثاني. ابحث عناشتراك Concierge وانسخ القيمة في العمود الثاني. يبدو شيئا مثل cf49fbbc-217c-4eb6-9eb5-a6a6c68295a0:

    Get-AzSubscription
    
  2. قم بتشغيل الأمر التالي، واستبدل {معرف الاشتراك} بالأمر الذي قمت بنسخه في الخطوة السابقة لتغيير اشتراكك النشط في اشتراك Concierge.

    $context = Get-AzSubscription -SubscriptionId {Your subscription ID}
    Set-AzContext $context
    
  3. تشغيل الأمر التالي للسماح لمجموعة الموارد الافتراضية تكون مجموعة الموارد التي أُنشئَت لك في بيئة الاختبار المعزولة. يتيح لك هذا الإجراء حذف هذه المعلمة من باقي أوامر Azure PowerShell في هذا التدريب.

    Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    

نشر القالب إلى Azure

نشر القالب إلى Azure من خلال تشغيل الأوامر التالية. لا يحتوي قالب ARM على أي موارد حتى الآن، لذلك لن ترى الموارد التي تم إنشاؤها.

$templateFile="azuredeploy.json"
$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="blanktemplate-"+"$today"
New-AzResourceGroupDeployment `
  -Name $deploymentName `
  -TemplateFile $templateFile

يعين القسم العلوي من التعليمات البرمجية السابقة متغيرات Azure PowerShell، والتي تتضمن المسار إلى ملف النشر واسم النشر. ثم يقوم الأمر New-AzResourceGroupDeployment بنشر القالب إلى Azure. لاحظ أن اسم النشر blanktemplate يصحَبه التاريخ كلاحقة.

عندما تقوم بنشر قالب ARM الخاص بك على Azure، انتقل إلى مدخل Azure وتأكد من أنك في اشتراك بيئة الاختبار المعزولة. للقيام بذلك حدد الأفاتار الخاص بك في الزاوية اليُمنى العلوية من الصفحة. حدد تبديل الدليل. في القائمة، حدد دليل Microsoft Learn Sandbox.

  1. في قائمة الموارد، حدد ⁧⁩Resource groups⁦⁩.

  2. ثم حدد مجموعة الموارد [اسم مجموعة موارد بيئة الاختبار المعزولة].

  3. في جزء Overview، ترى نجاح عملية نشر واحدة.

    Azure portal interface for the resource group overview with the deployments section showing that one succeeded.

  4. حدد 1 Succeeded للاطلاع على تفاصيل التوزيع.

    Azure portal interface for the deployments with the one deployment listed and a succeeded status.

  5. حدد blanktemplate لمعرفة ما الموارد التي تم نشرها. في هذه الحالة، سيكون فارغًا لأنك لم تحدد أي موارد في القالب حتى الآن.

    Azure portal interface for the specific deployment with no resources listed.

  6. اترك الصفحة مفتوحة في المتصفح. سوف تحقق من عمليات النشر مرة أخرى.

إضافة مصدر إلى قالب ARM

في المهمة السابقة، تعلمت كيفية إنشاء قالب فارغ ونشره. الآن، أنت جاهز لنشر مصدر فعلي. في هذه المهمة، ستضيف مورد حساب تخزين Azure إلى قالب ARM باستخدام قصاصة برمجية من ملحق Azure Resource Manager Tools ل Visual Studio Code.

  1. في ملف azuredeploy.json في التعليمات البرمجية لـ Visual Studio، ضع المؤشر داخل الأقواس في كتلة "resources":[], الموارد.

  2. أدخل التخزين داخل الأقواس. تظهر قائمة بالقصاصات البرمجية ذات الصلة. حدد arm-storage.

    Visual Studio Code arm-storage snippet shown under the typed word storage.

    سيبدو الملف كما يلي:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {},
      "functions": [],
      "variables": {},
      "resources": [
        {
          "name": "storageaccount1",
          "type": "Microsoft.Storage/storageAccounts",
          "apiVersion": "2019-06-01",
          "tags": {
            "displayName": "storageaccount1"
          },
          "location": "[resourceGroup().location]",
          "kind": "StorageV2",
          "sku": {
            "name": "Premium_LRS",
            "tier": "Premium"
          }
        }
      ],
      "outputs": {}
    }
    

    يتم تمييز القيم التي يجب تحريرها في القسم الجديد من الملف، ويمكنك التنقل بينها بالضغط على المفتاح Tab .

    لاحظ أن سمات tags وlocation تتم تعبئتها. locationتستخدم السمة وظيفة لتعيين موقع المصدر إلى موقع مجموعة المصادر. يمكنك التعرف على العلامات والوظائف في الوحدة التالية.

  3. قم بتغيير قيم اسم المورد واسم العرض إلى شيء فريد (على سبيل المثال، learnexercise12321). يجب أن يكون هذا الاسم فريدًا عبر كل Azure، لذا اختر شيئًا فريدًا لك.

  4. تغيير قيمة اسم sku من Premium_LRS إلى Standard_LRS. تغيير قيمة المستوى إلى قياسي. لاحظ أن تعليمة برمجية Visual Studio تعطيك الخيارات المناسبة لقيم السمة في IntelliSense. حذف القيمة الافتراضية، بما في ذلك علامات الاقتباس، وادخل علامات اقتباس لمشاهدة هذا العمل.

    Screenshot of Visual Studio Code showing the IntelliSense choices for the name attribute of the storage SKU.

  5. يتم تعيين موقع المورد إلى موقع مجموعة الموارد حيث سيتم نشره. اترك الافتراضي هنا.

  6. احفظ الملف.

نشر قالب ARM المحدث

هنا، ستقوم بتغيير اسم النشر ليعكس بشكل أفضل ما يفعله هذا النشر.

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

templateFile="azuredeploy.json"
today=$(date +"%d-%b-%Y")
DeploymentName="addstorage-"$today

az deployment group create \
  --name $DeploymentName \
  --template-file $templateFile

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

$templateFile="azuredeploy.json"
$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="addstorage-"+"$today"
New-AzResourceGroupDeployment `
  -Name $deploymentName `
  -TemplateFile $templateFile

تحقق من النشر

  1. عند انتهاء النشر، ارجع إلى مدخل Microsoft Azure في المستعرض الخاص بك. انتقل إلى مجموعة الموارد الخاصة بك، وسترى أنه يوجد الآن 2 Succeeded من عمليات نشر. حدد هذا الارتباط.

    لاحظ أن كلتا عمليتي النشر في القائمة.

    Screenshot of the Azure portal interface for the deployments with the two deployments listed and succeeded statuses.

  2. حدد addstorage.

    Screenshot of the Azure portal interface for the specific deployment with one resource listed.

لاحظ أنه قد تم نشر حساب التخزين.