Partilhar via


Aplicar tags com o Bicep

Este artigo descreve como usar o Bicep para marcar recursos, grupos de recursos e assinaturas durante a implantação. Para obter recomendações e limitações de tags, consulte Usar tags para organizar seus recursos do Azure e hierarquia de gerenciamento.

Nota

As tags que você aplica por meio de um arquivo Bicep substituem quaisquer tags existentes.

Aplicar valores

O exemplo a seguir implanta uma conta de armazenamento com três tags. Duas das tags (Dept e Environment) são definidas como valores literais. Uma tag (LastDeployed) é definida como um parâmetro que assume como padrão a data atual.

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

Aplicar um objeto

Você pode definir um parâmetro de objeto que armazena várias tags e aplicar esse objeto ao elemento tag. Essa abordagem fornece mais flexibilidade do que o exemplo anterior porque o objeto pode ter propriedades diferentes. Cada propriedade no objeto torna-se uma etiqueta separada para o recurso. O exemplo a seguir tem um parâmetro chamado tagValues que você aplica ao elemento tag.

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
}

Aplicar uma cadeia de caracteres JSON

Para armazenar muitos valores numa única etiqueta, aplique uma cadeia JSON que represente os valores. Toda a cadeia de caracteres JSON é armazenada como uma tag que não pode exceder 256 caracteres. O exemplo seguinte tem uma única etiqueta com o nome CostCenter que contém vários valores de uma cadeia 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"}'
  }
}

Aplicar tags do grupo de recursos

Para aplicar tags de um grupo de recursos a um recurso, use a função resourceGroup( ). Quando você obtiver o valor da tag, use a tags[tag-name] sintaxe em vez da tags.tag-name sintaxe, porque alguns caracteres não são analisados corretamente na notação de ponto.

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

Aplicar etiquetas a grupos de recursos ou subscrições

Você pode adicionar tags a um grupo de recursos ou assinatura implantando o Microsoft.Resources/tags tipo de recurso. Você pode aplicar as tags ao grupo de recursos de destino ou à assinatura que deseja implantar. Sempre que você implanta o modelo, substitui as tags anteriores.

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

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

O Bíceps a seguir adiciona as tags de um objeto à assinatura na qual você implanta. Para obter mais informações sobre implantações de assinatura, consulte Criar grupos de recursos e recursos no nível da assinatura.

targetScope = 'subscription'

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

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

Próximos passos