تمرين - استخدام نسخة لتقليل التكرار

مكتمل

في هذا التمرين النهائي، يمكنك الاستمرار في العمل باستخدام حسابات التخزين. هذه المرة، يمكنك استخدام البنية copy لتزويد حسابات تخزين متعددة من تعريف واحد.

Copy يمنحك موقعًا مركزيًا واحدًا تحتاج إلى تحديثه عندما تتغير متطلباتك.

إنشاء قالب ARM

هنا، تنشئ قالب Azure Resource Manager‏ (ARM) الذي يحدد مورد حساب التخزين. يستخدم القالب copy لإنشاء إصدارات مشابهة من المورد نفسه، عدد محدد من المرات.

  1. في Visual Studio Code، أنشئ ملفًا بالاسم copy.jsonفي الدليل نفسه الذي يحتوي على azuredeploy.json.

  2. أضِف هذه المحتويات إلى copy.json:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "storageCount": {
          "type": "int",
          "defaultValue": 1,
          "metadata": {
            "description": "the number of storage accounts copies being deployed"
          }
        },
        "storageAccountName": {
          "type": "string",
          "defaultValue": "storage",
          "metadata": {
            "description": "the name of the storage account"
          }
        }
      },
      "functions": [],
      "variables": {},
      "resources": [
        {
          "name": "[concat(parameters('storageAccountName'), copyIndex())]",
          "type": "Microsoft.Storage/storageAccounts",
          "apiVersion": "2019-06-01",
          "tags": {
            "displayName": "storageaccount1"
          },
          "location": "[resourceGroup().location]",
          "kind": "StorageV2",
          "sku": {
            "name": "Premium_LRS",
            "tier": "Premium"
          },
          "copy": {
            "name": "storagecopy",
            "count": "[parameters('storageCount')]"
          }
        }
      ],
      "outputs": {}
    }
    

تحدد المعلمة storageCount عدد النسخ المراد إنشاؤها.

ضمن resources، لاحظ مورد حساب التخزين. لجعل اسم حساب التخزين مميزًا، يستخدم القالب copyIndex() لإلحاق الفهرس الحالي باسم حساب التخزين.

يقرأ القسم copy عدد النسخ المطلوب إنشاؤها من المعلمة storageCount.

نشر القالب

هنا، يتم توزيع القالب على نحو ما فعلت سابقًا. تقدم خطوة التوزيع حسابي تخزين متشابهين.

  1. إنشاء متغيّر PowerShell يحمل اسم حساب التخزين.

    $STORAGE_ACCT_NAME="tailwindsa" + (Get-Random -Count 1)
    
  2. شغّل الأمر New-AzResourceGroupDeploymentالتالي لتوزيع القالب:

    New-AzResourceGroupDeployment `
    -TemplateFile "./copy.json" `
    -storageAccountName $STORAGE_ACCT_NAME `
    -storageCount 2
    

    هنا، تُعيِن storageCount إلى 2 لتوفير حسابي تخزين.

تحقق من التوزيع

على الرغم من أن المُخرج يظهر أنه قد أُنشئ حسابي تخزين، هنا يمكنك تشغيل الأمر Get-AzResource للتركيز على موارد المُخرج.

تشغيل الأمر Get-AzResource التالي للتأكد من توزيع الموارد:

Get-AzResource -Name tailwindsa* -ResourceGroupName <rgn>resource group name</rgn> | Select-Object -Property Name,ResourceId

تحدد الوسيطة tailwindsa* لإظهار المعرفات المطابقة لبادئة الاسم الذي أعطيته للموارد.

تشبه مخرجاتك ما يلي:

Name                 ResourceId
----                 ----------
tailwindsa1852777810 /subscriptions/11112222-3333-4444-5555-1111222233334444/resourceGroups/<rgn>resoure group</rgn>/providers/Microsoft.Storage/storageAccount…
tailwindsa1852777811 /subscriptions/11112222-3333-4444-5555-1111222233334444/resourceGroups/<rgn>resoure group</rgn>/providers/Microsoft.Storage/storageAccount…

في هذا المثال:

  • tailwindsa185277781 هو الاسم الأساسي الذي خُصص لحساب التخزين ("tailwindsa" + Get-Random -Count 1).
  • tailwindsa1852777810 (الاسم الأساسي بالإضافة إلى "0") هو حساب التخزين الأول.
  • tailwindsa1852777811 (الاسم الأساسي بالإضافة إلى "1") هو حساب التخزين الثاني.

عمل رائع! مع تغير احتياجاتك، مثل مستوى الأداء الذي تحتاجه، يمكنك تعديل تعريفات مواردك من موقعٍ واحدٍ.

تنظيف

تُنظف بيئة الاختبار المعزولة مواردك تلقائيًا ما إن تنتهي من هذه الوحدة النمطية.

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

إنشاء قالب ARM

هنا، تنشئ قالب Azure Resource Manager‏ (ARM) الذي يحدد مورد حساب التخزين. يستخدم القالب copy لإنشاء إصدارات مشابهة من المورد نفسه، عدد محدد من المرات.

  1. في Visual Studio Code، أنشئ ملفًا بالاسم copy.jsonفي الدليل نفسه الذي يحتوي على azuredeploy.json.

  2. أضِف هذه المحتويات إلى copy.json:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "storageCount": {
          "type": "int",
          "defaultValue": 1,
          "metadata": {
            "description": "the number of storage accounts being deployed"
          }
        },
        "storageAccountName": {
          "type": "string",
          "defaultValue": "storage",
          "metadata": {
            "description": "the name of the storage account"
          }
        }
      },
      "functions": [],
      "variables": {},
      "resources": [
        {
          "name": "[concat(parameters('storageAccountName'), copyIndex())]",
          "type": "Microsoft.Storage/storageAccounts",
          "apiVersion": "2019-06-01",
          "tags": {
            "displayName": "storageaccount1"
          },
          "location": "[resourceGroup().location]",
          "kind": "StorageV2",
          "sku": {
            "name": "Premium_LRS",
            "tier": "Premium"
          },
          "copy": {
            "name": "storagecopy",
            "count": "[parameters('storageCount')]"
          }
        }
      ],
      "outputs": {}
    }
    

تحدد المعلمة storageCount عدد النسخ المراد إنشاؤها.

ضمن resources، لاحظ مورد حساب التخزين. لجعل اسم حساب التخزين مميزًا، يستخدم القالب copyIndex() لإلحاق الفهرس الحالي باسم حساب التخزين.

يقرأ القسم copy عدد النسخ المطلوب إنشاؤها من المعلمة storageCount.

نشر القالب

هنا، يتم توزيع القالب على نحو ما فعلت سابقًا. تقدم خطوة التوزيع حسابي تخزين متشابهين.

  1. إنشاء متغيّر Bash يحمل اسم حساب التخزين.

    STORAGE_ACCT_NAME=tailwindsa$RANDOM
    
  2. شغّل الأمر az deployment group createالتالي لتوزيع القالب:

    az deployment group create \
      --template-file copy.json \
      --parameters storageAccountName=$STORAGE_ACCT_NAME storageCount=2
    

    هنا، تُعيِن storageCount إلى 2 لتوفير حسابي تخزين.

تحقق من التوزيع

على الرغم من أن المُخرج يظهر أنه قد أُنشئ حسابي تخزين، هنا يمكنك تشغيل الأمر az deployment group show للتركيز على موارد المُخرج.

شغَّل الأمر az deployment group show التالي لعرض تفاصيل عن التوزيع:

az deployment group show \
  --name copy \
  --query "properties.outputResources[].id" \
  --output tsv

تحدد الوسيطة --queryلإظهار المعرفات فقط من موارد المُخرجات.

تشبه مخرجاتك ما يلي:

/subscriptions/4b328dc1-56b1-4031-89b0-c0898204f8a5/resourceGroups/<rgn>resource group name</rgn>/providers/Microsoft.Storage/storageAccounts/tailwindsa9820
/subscriptions/4b328dc1-56b1-4031-89b0-c0898204f8a5/resourceGroups/<rgn>resource group name</rgn>/providers/Microsoft.Storage/storageAccounts/tailwindsa9821

في هذا المثال:

  • tailwindsa982 هو الاسم الأساسي الذي خُصص لحساب التخزين (tailwindsa$RANDOM).
  • tailwindsa9820 (الاسم الأساسي بالإضافة إلى "0") هو حساب التخزين الأول.
  • tailwindsa9821 (الاسم الأساسي بالإضافة إلى "1") هو حساب التخزين الثاني.

عمل رائع! مع تغير احتياجاتك، مثل مستوى الأداء الذي تحتاجه، يمكنك تعديل تعريفات مواردك من موقعٍ واحدٍ.

تنظيف

تُنظف بيئة الاختبار المعزولة مواردك تلقائيًا ما إن تنتهي من هذه الوحدة النمطية.

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