Bicep ile etiket uygulama

Bu makalede, dağıtım sırasında kaynakları, kaynak gruplarını ve abonelikleri etiketlemek için Bicep'in nasıl kullanılacağı açıklanır. Etiket önerileri ve sınırlamaları için bkz. Azure kaynaklarınızı ve yönetim hiyerarşinizi düzenlemek için etiketleri kullanma.

Not

Bir Bicep dosyası aracılığıyla uyguladığınız etiketler mevcut etiketlerin üzerine yazar.

Değerleri uygulama

Aşağıdaki örnekte üç etiketli bir depolama hesabı dağıtılır. Etiketlerin (Dept ve Environment) ikisi değişmez değerlere ayarlanır. Bir etiket (LastDeployed), varsayılan olarak geçerli tarih olan bir parametreye ayarlanır.

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
  }
}

Nesne uygulama

Çeşitli etiketleri depolayan ve bu nesneyi etiket öğesine uygulayan bir nesne parametresi tanımlayabilirsiniz. Nesnenin farklı özellikleri olabileceğinden bu yaklaşım önceki örnekten daha fazla esneklik sağlar. Nesnedeki her özellik, kaynak için ayrı bir etiket haline gelir. Aşağıdaki örnekte, etiket öğesine uygulanan adlı tagValues bir parametre vardır.

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 dizesi uygulama

Çok sayıda değeri tek bir etikete depolamak için, değerleri temsil eden bir JSON dizesi uygulayın. JSON dizesinin tamamı 256 karakteri geçemeyecek tek bir etiket olarak depolanır. Aşağıdaki örnekte bir JSON dizesindeki çok sayıda değeri içeren CostCenter adlı tek bir etiket kullanılmaktadır:

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"}'
  }
}

Kaynak grubundan etiket uygulama

Kaynak grubundaki etiketleri bir kaynağa uygulamak için resourceGroup() işlevini kullanın. Etiket değerini aldığınızda, bazı karakterler noktalı gösteriminde tags[tag-name]tags.tag-name doğru ayrıştırılmadığından söz dizimi yerine söz dizimini kullanın.

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']
  }
}

Kaynak gruplarına veya aboneliklere etiket uygulama

Kaynak türünü dağıtarak Microsoft.Resources/tags bir kaynak grubuna veya aboneliğe etiket ekleyebilirsiniz. Etiketleri dağıtmak istediğiniz hedef kaynak grubuna veya aboneliğe uygulayabilirsiniz. Şablonu her dağıttığınızda önceki etiketleri değiştirirsiniz.

param tagName string = 'TeamName'
param tagValue string = 'AppTeam1'

resource applyTags 'Microsoft.Resources/tags@2021-04-01' = {
  name: 'default'
  properties: {
    tags: {
      '${tagName}': tagValue
    }
  }
}

Aşağıdaki Bicep, bir nesnedeki etiketleri dağıtılacağı aboneliğe ekler. Abonelik dağıtımları hakkında daha fazla bilgi için bkz. Abonelik düzeyinde kaynak grupları ve kaynaklar oluşturma.

targetScope = 'subscription'

param tagObject object = {
  TeamName: 'AppTeam1'
  Dept: 'Finance'
  Environment: 'Production'
}

resource applyTags 'Microsoft.Resources/tags@2021-04-01' = {
  name: 'default'
  properties: {
    tags: tagObject
  }
}

Sonraki adımlar