Delen via


Tags toepassen met Bicep

In dit artikel wordt beschreven hoe u Bicep gebruikt om resources, resourcegroepen en abonnementen te taggen tijdens de implementatie. Zie Tags gebruiken om uw Azure-resources en -beheerhiërarchie te organiseren voor aanbevelingen en beperkingen voor tags.

Notitie

De tags die u via een Bicep-bestand toepast, overschrijven alle bestaande tags.

Waarden toepassen

In het volgende voorbeeld wordt een opslagaccount met drie tags geïmplementeerd. Twee van de tags (Dept en Environment) zijn ingesteld op letterlijke waarden. Eén tag (LastDeployed) is ingesteld op een parameter die standaard de huidige datum heeft.

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

Een object toepassen

U kunt een objectparameter definiëren waarin verschillende tags worden opgeslagen en dat object toepassen op het tag-element. Deze benadering biedt meer flexibiliteit dan in het vorige voorbeeld, omdat het object verschillende eigenschappen kan hebben. Elke eigenschap in het object wordt een afzonderlijke tag voor de resource. Het volgende voorbeeld bevat een parameter met de naam tagValues die wordt toegepast op het tag-element.

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
}

Een JSON-tekenreeks toepassen

Als u veel waarden wilt opslaan in een enkele tag, past u een JSON-tekenreeks toe die de waarden vertegenwoordigt. De hele JSON-tekenreeks wordt opgeslagen als één tag die niet langer mag zijn dan 256 tekens. Het volgende voorbeeld heeft een enkele tag met de naam CostCenter die verschillende waarden uit een JSON-tekenreeks bevat:

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

Tags toepassen vanuit resourcegroep

Als u tags van een resourcegroep wilt toepassen op een resource, gebruikt u de functie resourceGroup(). Wanneer u de tagwaarde krijgt, gebruikt u de tags[tag-name] syntaxis in plaats van de tags.tag-name syntaxis, omdat sommige tekens niet correct worden geparseerd in de puntnotatie.

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

Tags toepassen op resourcegroepen of abonnementen

U kunt tags toevoegen aan een resourcegroep of abonnement door het Microsoft.Resources/tags resourcetype te implementeren. U kunt de tags toepassen op de doelresourcegroep of het abonnement dat u wilt implementeren. Telkens wanneer u de sjabloon implementeert, vervangt u eventuele eerdere tags.

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

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

De volgende Bicep voegt de tags van een object toe aan het abonnement waarop het is geïmplementeerd. Zie Resourcegroepen en resources maken op abonnementsniveau voor meer informatie over abonnementsimplementaties.

targetScope = 'subscription'

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

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

Volgende stappen