تطبيق العلامات باستخدام 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
  }
}

الخطوات التالية