Dela via


Använda taggar med Bicep

I den här artikeln beskrivs 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.

Kommentar

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

Tillämpa 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 fö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
  }
}

Tillämpa ett objekt

Du kan definiera en objektparameter som lagrar flera taggar och tillämpa objektet på taggelementet. Den här metoden ger större 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 du använder för 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 får 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 punkt notationen.

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 använda taggarna för den resursgrupp 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 du distribuerar 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