Freigeben über


Anwenden von Tags mit Bicep

In diesem Artikel wird beschrieben, wie Sie Bicep verwenden, um Ressourcen, Ressourcengruppen und Abonnements während der Bereitstellung zu markieren. Weitere Informationen zu Tag-Empfehlungen und Einschränkungen finden Sie unter Verwenden von Tags zum Organisieren Ihrer Azure-Ressourcen und der Verwaltungshierarchie.

Hinweis

Die Tags, die Sie über eine Bicep-Datei anwenden, überschreiben alle vorhandenen Tags.

Anwenden von Werten

Im folgenden Beispiel wird ein Speicherkonto mit drei Tags bereitgestellt. Zwei der Tags (Dept und Environment) werden auf literale Werte festgelegt. Ein Tag (LastDeployed) wird auf einen Parameter festgelegt, der standardmäßig das aktuelle Datum angibt.

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

Anwenden eines Objekts

Sie können einen Objektparameter definieren, der mehrere Tags speichert, und dieses Objekt auf das Tagelement anwenden. Dieser Ansatz bietet mehr Flexibilität als das vorherige Beispiel, da das Objekt unterschiedliche Eigenschaften enthalten kann. Jede Eigenschaft in dem Objekt wird zu einem separaten Tag für die Ressource. Das folgende Beispiel enthält einen Parameter namens tagValues, der auf das Tagelement angewendet wird.

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
}

Anwenden einer JSON-Zeichenfolge

Wenn Sie mehrere Werte in einem einzelnen Tag speichern möchten, wenden Sie eine JSON-Zeichenfolge an, die die gewünschten Werte darstellt. Die gesamte JSON-Zeichenfolge wird als einzelnes Tag gespeichert und darf maximal 256 Zeichen lang sein. Im folgenden Beispiel gibt es ein einzelnes Tag namens CostCenter, das mehrere Werte aus einer JSON-Zeichenfolge enthält:

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

Anwenden von Tags aus der Ressourcengruppe

Wenn Sie Tags aus einer Ressourcengruppe auf eine Ressource anwenden möchten, verwenden Sie die Funktion resourceGroup(). Wenn Sie den Tagwert abrufen, verwenden Sie die tags[tag-name]-Syntax anstelle der tags.tag-name-Syntax, da einige Zeichen in der Punktnotation nicht ordnungsgemäß analysiert werden.

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

Anwenden von Tags auf Ressourcengruppen oder Abonnements

Durch Bereitstellen des Ressourcentyps Microsoft.Resources/tags können Sie einer Ressourcengruppe oder einem Abonnement Tags hinzufügen. Sie können die Tags auf die Zielressourcengruppe oder das Abonnement anwenden, das Sie bereitstellen möchten. Jedes Mal, wenn Sie die Vorlage bereitstellen, ersetzen Sie alle vorherigen Tags.

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

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

Die folgende Bicep fügt die Tags aus einem Objekt dem Abonnement hinzu, in dem es bereitgestellt wird. Weitere Informationen zu Abonnementbereitstellungen finden Sie unter Erstellen von Ressourcengruppen und Ressourcen auf Abonnementebene.

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ächste Schritte