تطبيق العلامات باستخدام قوالب ARM
توضح هذه المقالة كيفية استخدام قوالب Azure Resource Manager (قوالب ARM) لوضع علامة على الموارد ومجموعات الموارد والاشتراكات أثناء التوزيع. للحصول على توصيات العلامات والقيود، راجع استخدام العلامات لتنظيم موارد Azure والتسلسل الهرمي للإدارة.
ملاحظة
العلامات التي تضعها من خلال قالب ARM أو ملف Bicep تنطبع على أي علامات موجودة.
تطبيق القيم
ينشر المثال التالي حساب تخزين مع ثلاث علامات. يتم تعيين علامتين (Dept
وEnvironment
) إلى قيم حرفية. يتم تعيين علامة واحدة (LastDeployed
) إلى المعلمة التي لا تفي بالتاريخ الحالي.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"utcShort": {
"type": "string",
"defaultValue": "[utcNow('d')]"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[concat('storage', uniqueString(resourceGroup().id))]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"tags": {
"Dept": "Finance",
"Environment": "Production",
"LastDeployed": "[parameters('utcShort')]"
},
"properties": {}
}
]
}
تطبيق كائن
يمكنك تحديد معلمة عنصر تقوم بتخزين العديد من العلامات وتطبيق هذا العنصر على عنصر العلامة. يوفر هذا الأسلوب مرونة أكثر من المثال السابق، لأن الكائن يمكن أن يكون له خصائص مختلفة. تصبح كل خاصية في الكائن علامة منفصلة للمورد. يحتوي المثال التالي على معلمة باسم tagValues
يتم تطبيقها على عنصر العلامة.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
},
"tagValues": {
"type": "object",
"defaultValue": {
"Dept": "Finance",
"Environment": "Production"
}
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[concat('storage', uniqueString(resourceGroup().id))]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"tags": "[parameters('tagValues')]",
"properties": {}
}
]
}
تطبيق سلسلة JSON
لتخزين العديد من القيم في علامة واحدة، تطبق سلسلة JSON التي تمثل القيم. يتم تخزين سلسلة JSON بأكملها كعلامة واحدة لا يمكن أن تتجاوز 256 حرفًا. يحتوي المثال التالي على علامة واحدة مسماةCostCenter
تحتوي على قيم متعددة من سلسلة JSON:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[concat('storage', uniqueString(resourceGroup().id))]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"tags": {
"CostCenter": "{\"Dept\":\"Finance\",\"Environment\":\"Production\"}"
},
"properties": {}
}
]
}
تطبيق علامات من مجموعة الموارد
لتطبيق العلامات من مجموعة الموارد على المورد، يمكنك أيضًا استخدام الوظيفة(resourceGroup) عندما تحصل على قيمة العلامة، استخدم بناء الجملة tags[tag-name]
بدلاً من بناء الجملة tags.tag-name
، لأن بعض الأحرف لم يتم توزيعها بشكل صحيح في الترميز النقطي.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[concat('storage', uniqueString(resourceGroup().id))]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"tags": {
"Dept": "[resourceGroup().tags['Dept']]",
"Environment": "[resourceGroup().tags['Environment']]"
},
"properties": {}
}
]
}
تطبيق علامات على مجموعات الموارد أو الاشتراكات
يمكنك إضافة علامات إلى مجموعة موارد أو اشتراك عن طريق نشر Microsoft.Resources/tags
نوع المورد. يمكنك تطبيق العلامات على مجموعة الموارد المستهدفة أو الاشتراك الذي تريد توزيعه. في كل مرة تقوم فيها بتوزيع القالب، تقوم باستبدال أي علامات سابقة.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"tagName": {
"type": "string",
"defaultValue": "TeamName"
},
"tagValue": {
"type": "string",
"defaultValue": "AppTeam1"
}
},
"resources": [
{
"type": "Microsoft.Resources/tags",
"name": "default",
"apiVersion": "2021-04-01",
"properties": {
"tags": {
"[parameters('tagName')]": "[parameters('tagValue')]"
}
}
}
]
}
لتطبيق العلامات على مجموعة موارد، استخدم Azure PowerShell أو Azure CLI. نشر إلى مجموعة الموارد التي تريد وضع علامة.
New-AzResourceGroupDeployment -ResourceGroupName exampleGroup -TemplateFile https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/tags.json
az deployment group create --resource-group exampleGroup --template-uri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/tags.json
لتطبيق العلامات على اشتراك، استخدم PowerShell أو Azure CLI. نشر إلى الاشتراك الذي تريد وضع علامة.
New-AzSubscriptionDeployment -name tagresourcegroup -Location westus2 -TemplateUri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/tags.json
az deployment sub create --name tagresourcegroup --location westus2 --template-uri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/tags.json
للمزيد من المعلومات عن عمليات التوزيع على مستوى الاشتراك، يُرجى الرجوع إلى إنشاء موارد ومجموعات موارد على مستوى الاشتراك.
يضيف القالب التالي العلامات من كائن إلى مجموعة موارد أو اشتراك.
{
"$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"tags": {
"type": "object",
"defaultValue": {
"TeamName": "AppTeam1",
"Dept": "Finance",
"Environment": "Production"
}
}
},
"resources": [
{
"type": "Microsoft.Resources/tags",
"apiVersion": "2021-04-01",
"name": "default",
"properties": {
"tags": "[parameters('tags')]"
}
}
]
}
الخطوات التالية
- لا تدعم كافة أنواع الموارد العلامات. لتحديد ما إذا كان يمكنك تطبيق علامة على نوع مورد، راجع دعم العلامة لـ Azure resources.
- للحصول على توصيات حول كيفية تنفيذ إستراتيجية وضع العلامات، راجع دليل قرار تسمية الموارد ووضع علامات عليها.
- للحصول على توصيات العلامات والقيود، راجع استخدام العلامات لتنظيم موارد Azure والتسلسل الهرمي للإدارة.
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ