Stosowanie tagów za pomocą Bicep
W tym artykule opisano, jak używać Bicep do tagowania zasobów, grup zasobów i subskrypcji podczas wdrażania. Aby uzyskać zalecenia i ograniczenia dotyczące tagów, zobacz Organizowanie zasobów platformy Azure i hierarchii zarządzania przy użyciu tagów.
Uwaga
Tagi stosowane za pośrednictwem pliku Bicep zastępują wszystkie istniejące tagi.
Stosowanie wartości
Poniższy przykład umożliwia wdrożenie konta magazynu z trzema tagami. Dwa tagi (Dept
i Environment
) są ustawione na wartości literału. Jeden tag (LastDeployed
) jest ustawiony na parametr, który domyślnie jest ustawiony na bieżącą datę.
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
}
}
Stosowanie obiektu
Można zdefiniować parametr obiektu, który przechowuje kilka tagów i zastosować ten obiekt do elementu tagu. Takie podejście zapewnia większą elastyczność niż w poprzednim przykładzie, ponieważ obiekt może mieć różne właściwości. Każda właściwość obiektu będzie osobnym tagiem dla zasobu. Poniższy przykład zawiera parametr o nazwie tagValues
, który jest stosowany do elementu tagu.
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
}
Stosowanie ciągu JSON
Aby przechowywać wiele wartości w jednym tagu, zastosuj ciąg JSON reprezentujący te wartości. Cały ciąg JSON jest przechowywany jako jeden tag, który nie może przekraczać 256 znaków. Poniższy przykład zawiera pojedynczy tag o nazwie CostCenter
, który zawiera kilka wartości z ciągu 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"}'
}
}
Stosowanie tagów z grupy zasobów
Aby zastosować tagi z grupy zasobów do zasobu, użyj funkcji resourceGroup(). Gdy uzyskasz wartość tagu, użyj tags[tag-name]
składni zamiast tags.tag-name
składni, ponieważ niektóre znaki nie są poprawnie analizowane w notacji kropkowej.
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']
}
}
Stosowanie tagów do grup zasobów lub subskrypcji
Tagi można dodawać do grupy zasobów lub subskrypcji, wdrażając Microsoft.Resources/tags
typ zasobu. Tagi można zastosować do docelowej grupy zasobów lub subskrypcji, którą chcesz wdrożyć. Za każdym razem, gdy wdrażasz szablon, zastępujesz wszystkie poprzednie tagi.
param tagName string = 'TeamName'
param tagValue string = 'AppTeam1'
resource applyTags 'Microsoft.Resources/tags@2021-04-01' = {
name: 'default'
properties: {
tags: {
'${tagName}': tagValue
}
}
}
Poniższy kod Bicep dodaje tagi z obiektu do subskrypcji, w ramach których jest wdrażany. Aby uzyskać więcej informacji na temat wdrożeń subskrypcji, zobacz Tworzenie grup zasobów i zasobów na poziomie subskrypcji.
targetScope = 'subscription'
param tagObject object = {
TeamName: 'AppTeam1'
Dept: 'Finance'
Environment: 'Production'
}
resource applyTags 'Microsoft.Resources/tags@2021-04-01' = {
name: 'default'
properties: {
tags: tagObject
}
}
Następne kroki
- Nie wszystkie typy zasobów obsługują tagi. Aby określić, czy można zastosować tag do typu zasobu, zobacz Obsługa tagów dla zasobów platformy Azure.
- Aby uzyskać zalecenia dotyczące implementowania strategii tagowania, zobacz Przewodnik po decyzjach dotyczących nazewnictwa i tagowania zasobów.
- Aby uzyskać zalecenia i ograniczenia dotyczące tagów, zobacz Organizowanie zasobów platformy Azure i hierarchii zarządzania przy użyciu tagów.