تمرين - استخدام نسخة لتقليل التكرار
في هذا التمرين النهائي، يمكنك الاستمرار في العمل باستخدام حسابات التخزين. هذه المرة، يمكنك استخدام البنية copy
لتزويد حسابات تخزين متعددة من تعريف واحد.
Copy
يمنحك موقعًا مركزيًا واحدًا تحتاج إلى تحديثه عندما تتغير متطلباتك.
إنشاء قالب ARM
هنا، تنشئ قالب Azure Resource Manager (ARM) الذي يحدد مورد حساب التخزين. يستخدم القالب copy
لإنشاء إصدارات مشابهة من المورد نفسه، عدد محدد من المرات.
في Visual Studio Code، أنشئ ملفًا بالاسم copy.jsonفي الدليل نفسه الذي يحتوي على azuredeploy.json.
أضِف هذه المحتويات إلى 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
.
نشر القالب
هنا، يتم توزيع القالب على نحو ما فعلت سابقًا. تقدم خطوة التوزيع حسابي تخزين متشابهين.
إنشاء متغيّر PowerShell يحمل اسم حساب التخزين.
$STORAGE_ACCT_NAME="tailwindsa" + (Get-Random -Count 1)
شغّل الأمر
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
لإنشاء إصدارات مشابهة من المورد نفسه، عدد محدد من المرات.
في Visual Studio Code، أنشئ ملفًا بالاسم copy.jsonفي الدليل نفسه الذي يحتوي على azuredeploy.json.
أضِف هذه المحتويات إلى 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
.
نشر القالب
هنا، يتم توزيع القالب على نحو ما فعلت سابقًا. تقدم خطوة التوزيع حسابي تخزين متشابهين.
إنشاء متغيّر Bash يحمل اسم حساب التخزين.
STORAGE_ACCT_NAME=tailwindsa$RANDOM
شغّل الأمر
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") هو حساب التخزين الثاني.
عمل رائع! مع تغير احتياجاتك، مثل مستوى الأداء الذي تحتاجه، يمكنك تعديل تعريفات مواردك من موقعٍ واحدٍ.
تنظيف
تُنظف بيئة الاختبار المعزولة مواردك تلقائيًا ما إن تنتهي من هذه الوحدة النمطية.
عندما تعمل على اشتراكك الخاص، من الأفضل أن تُحدد في نهاية المشروع ما إذا كنت لا تزال بحاجة إلى الموارد التي أنشأتها أو لا. يمكن أن تكلفك الموارد التي لا تزال قيد التشغيل الأموال. يمكنك حذف الموارد بشكل فردي أو حذف مجموعة الموارد لحذف تشكيلة الموارد بأكملها.