Dela via


Använda taggar med Bicep

Den här artikeln beskriver hur du använder Bicep för att tagga resurser, resursgrupper och prenumerationer under distributionen. Taggrekommendationer och begränsningar finns i Använda taggar för att organisera dina Azure-resurser och hanteringshierarki.

Anteckning

De taggar som du tillämpar via en Bicep-fil skriver över alla befintliga taggar.

Använda värden

I följande exempel distribueras ett lagringskonto med tre taggar. Två av taggarna (Dept och Environment) är inställda på literalvärden. En tagg (LastDeployed) är inställd på en parameter som standardvärdet är det aktuella datumet.

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

Använda ett objekt

Du kan definiera en objektparameter som lagrar flera taggar och tillämpa objektet på taggelementet. Den här metoden ger mer flexibilitet än i föregående exempel eftersom objektet kan ha olika egenskaper. Varje egenskap i objektet blir en separat tagg för resursen. I följande exempel finns en parameter med namnet tagValues som tillämpas på taggelementet.

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
}

Använda en JSON-sträng

Du kan lagra flera värden i en enskild tagg genom att använda en JSON-sträng som representerar värdena. Hela JSON-strängen lagras som en tagg som inte får överstiga 256 tecken. I följande exempel finns en enskild tagg med namnet CostCenter som innehåller flera värden från en JSON-sträng:

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

Använda taggar från resursgrupp

Om du vill tillämpa taggar från en resursgrupp på en resurs använder du funktionen resourceGroup(). När du hämtar taggvärdet använder du syntaxen tags[tag-name] i stället för syntaxen tags.tag-name , eftersom vissa tecken inte parsas korrekt i punktnotationen.

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

Använda taggar för resursgrupper eller prenumerationer

Du kan lägga till taggar i en resursgrupp eller prenumeration genom att Microsoft.Resources/tags distribuera resurstypen. Du kan tillämpa taggarna på den målresursgrupp eller prenumeration som du vill distribuera. Varje gång du distribuerar mallen ersätter du eventuella tidigare taggar.

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

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

Följande Bicep lägger till taggarna från ett -objekt till den prenumeration som den distribueras till. Mer information om prenumerationsdistributioner finns i Skapa resursgrupper och resurser på prenumerationsnivå.

targetScope = 'subscription'

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

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

Nästa steg