تطبيق العلامات باستخدام Bicep
توضح هذه المقالة كيفية استخدام Bicep لوضع علامة على الموارد ومجموعات الموارد والاشتراكات أثناء التوزيع. للحصول على توصيات العلامات والقيود، راجع استخدام العلامات لتنظيم موارد Azure والتسلسل الهرمي للإدارة.
ملاحظة
تقوم العلامات التي تطبقها من خلال ملف Bicep بالكتابة فوق أي علامات موجودة.
تطبيق القيم
ينشر المثال التالي حساب تخزين مع ثلاث علامات. يتم تعيين علامتين (Dept
وEnvironment
) إلى قيم حرفية. يتم تعيين علامة واحدة (LastDeployed
) إلى المعلمة التي لا تفي بالتاريخ الحالي.
param location string = resourceGroup().location
param utcShort string = utcNow('d')
resource stgAccount 'Microsoft.Storage/storageAccounts@2021-04-01' = {
name: 'storage${uniqueString(resourceGroup().id)}'
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'Storage'
tags: {
Dept: 'Finance'
Environment: 'Production'
LastDeployed: utcShort
}
}
تطبيق كائن
يمكنك تحديد معلمة عنصر تقوم بتخزين العديد من العلامات وتطبيق هذا العنصر على عنصر العلامة. يوفر هذا الأسلوب مرونة أكثر من المثال السابق، لأن الكائن يمكن أن يكون له خصائص مختلفة. تصبح كل خاصية في الكائن علامة منفصلة للمورد. يحتوي المثال التالي على معلمة باسم tagValues
يتم تطبيقها على عنصر العلامة.
param location string = resourceGroup().location
param tagValues object = {
Dept: 'Finance'
Environment: 'Production'
}
resource stgAccount 'Microsoft.Storage/storageAccounts@2021-04-01' = {
name: 'storage${uniqueString(resourceGroup().id)}'
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'Storage'
tags: tagValues
}
تطبيق سلسلة JSON
لتخزين العديد من القيم في علامة واحدة، تطبق سلسلة JSON التي تمثل القيم. يتم تخزين سلسلة JSON بأكملها كعلامة واحدة لا يمكن أن تتجاوز 256 حرفًا. يحتوي المثال التالي على علامة واحدة مسماةCostCenter
تحتوي على قيم متعددة من سلسلة JSON:
param location string = resourceGroup().location
resource stgAccount 'Microsoft.Storage/storageAccounts@2021-04-01' = {
name: 'storage${uniqueString(resourceGroup().id)}'
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'Storage'
tags: {
CostCenter: '{"Dept":"Finance","Environment":"Production"}'
}
}
تطبيق علامات من مجموعة الموارد
لتطبيق العلامات من مجموعة الموارد على المورد، يمكنك أيضًا استخدام الوظيفة(resourceGroup) عندما تحصل على قيمة العلامة، استخدم بناء الجملة tags[tag-name]
بدلاً من بناء الجملة tags.tag-name
، لأن بعض الأحرف لم يتم توزيعها بشكل صحيح في الترميز النقطي.
param location string = resourceGroup().location
resource stgAccount 'Microsoft.Storage/storageAccounts@2021-04-01' = {
name: 'storage${uniqueString(resourceGroup().id)}'
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'Storage'
tags: {
Dept: resourceGroup().tags['Dept']
Environment: resourceGroup().tags['Environment']
}
}
تطبيق علامات على مجموعات الموارد أو الاشتراكات
يمكنك إضافة علامات إلى مجموعة موارد أو اشتراك عن طريق نشر Microsoft.Resources/tags
نوع المورد. يمكنك تطبيق العلامات على مجموعة الموارد المستهدفة أو الاشتراك الذي تريد توزيعه. في كل مرة تقوم فيها بتوزيع القالب، تقوم باستبدال أي علامات سابقة.
param tagName string = 'TeamName'
param tagValue string = 'AppTeam1'
resource applyTags 'Microsoft.Resources/tags@2021-04-01' = {
name: 'default'
properties: {
tags: {
'${tagName}': tagValue
}
}
}
يضيف Bicep التالي العلامات من عنصر إلى الاشتراك الذي يتم نشره فيه. للمزيد من المعلومات عن عمليات التوزيع على مستوى الاشتراك، يُرجى الرجوع إلى إنشاء موارد ومجموعات موارد على مستوى الاشتراك.
targetScope = 'subscription'
param tagObject object = {
TeamName: 'AppTeam1'
Dept: 'Finance'
Environment: 'Production'
}
resource applyTags 'Microsoft.Resources/tags@2021-04-01' = {
name: 'default'
properties: {
tags: tagObject
}
}
الخطوات التالية
- لا تدعم كافة أنواع الموارد العلامات. لتحديد ما إذا كان يمكنك تطبيق علامة على نوع مورد، راجع دعم العلامة لـ Azure resources.
- للحصول على توصيات حول كيفية تنفيذ إستراتيجية وضع العلامات، راجع دليل قرار تسمية الموارد ووضع علامات عليها.
- للحصول على توصيات العلامات والقيود، راجع استخدام العلامات لتنظيم موارد Azure والتسلسل الهرمي للإدارة.