使用 Bicep 套用標籤

本文說明如何在部署期間使用 Bicep 來標記資源、資源群組和訂用帳戶。 如需標籤建議及限制事項,請參閱使用標籤整理 Azure 資源和管理階層

注意

您透過 Bicep 檔案套用的標籤,會覆寫任何現有的標籤。

套用值

下列範例會部署一個具有三個標記的儲存體帳戶。 兩個標記 (DeptEnvironment) 會設定為常值。 一個標記 (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
  }
}

下一步