Appliquer des étiquettes avec Bicep
Cet article explique comment utiliser Bicep pour ajouter des étiquettes à des ressources, des groupes de ressources et des abonnements pendant le déploiement. Pour obtenir les recommandations et limitations des balises, consultez Utiliser des balises pour organiser vos ressources Azure et votre hiérarchie de gestion.
Notes
Les étiquettes que vous appliquez au travers d’un fichier Bicep remplacent toutes les étiquettes existantes.
Appliquer les valeurs
L’exemple suivant déploie un compte de stockage avec trois étiquettes. Deux des étiquettes (Dept
et Environment
) sont définies sur des valeurs littérales. Une étiquette (LastDeployed
) a pour valeur un paramètre dont la valeur par défaut est la date actuelle.
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
}
}
Appliquer un objet
Vous pouvez définir un paramètre d’objet qui stocke plusieurs balises et appliquer cet objet à l’élément de balise. Cette approche offre plus de souplesse que l’exemple précédent, car l’objet peut avoir des propriétés différentes. Chaque propriété de l’objet devient une balise distincte pour la ressource. L’exemple suivant illustre un paramètre nommé tagValues
appliqué à l’élément de balise.
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
}
Analyser une chaîne JSON
Pour stocker plusieurs valeurs dans une seule balise, appliquez une chaîne JSON qui représente les valeurs. La chaîne JSON complète est stockée sous la forme d’une balise ne pouvant pas dépasser 256 caractères. L’exemple illustre une balise unique nommée CostCenter
qui contient plusieurs valeurs d’une chaîne 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"}'
}
}
Appliquer des balises à partir d’un groupe de ressources
Pour appliquer des balises d’un groupe de ressources à une ressource, utilisez la fonction resourceGroup(). Lorsque vous obtenez la valeur de balise, utilisez la syntaxe tags[tag-name]
au lieu de la syntaxe tags.tag-name
, car certains caractères ne sont pas correctement analysés dans la notation par points.
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']
}
}
Appliquer des étiquettes à des groupes de ressources ou à des abonnements
Vous pouvez ajouter des étiquettes à un groupe de ressources ou à un abonnement en déployant le type de ressource Microsoft.Resources/tags
. Vous pouvez appliquer les étiquettes au groupe de ressources ou à l’abonnement cible que vous souhaitez déployer. Chaque fois que vous déployez le modèle, vous remplacez les étiquettes précédentes.
param tagName string = 'TeamName'
param tagValue string = 'AppTeam1'
resource applyTags 'Microsoft.Resources/tags@2021-04-01' = {
name: 'default'
properties: {
tags: {
'${tagName}': tagValue
}
}
}
Le Bicep suivant ajoute les étiquettes d’un objet à l’abonnement sur lequel il est déployé. Pour plus d’informations sur les déploiements dans des abonnements, consultez Créer des groupes de ressources et des ressources au niveau de l’abonnement.
targetScope = 'subscription'
param tagObject object = {
TeamName: 'AppTeam1'
Dept: 'Finance'
Environment: 'Production'
}
resource applyTags 'Microsoft.Resources/tags@2021-04-01' = {
name: 'default'
properties: {
tags: tagObject
}
}
Étapes suivantes
- Les types de ressources ne prennent pas tous en charge les étiquettes. Pour déterminer si vous pouvez appliquer une étiquette à un type de ressource, consultez Prise en charge des étiquettes pour les ressources Azure.
- Pour obtenir des recommandations sur la façon d’implémenter une stratégie d’étiquetage, consultez Guides de décision concernant le nommage et l’étiquetage des ressources.
- Pour obtenir les recommandations et limitations des balises, consultez Utiliser des balises pour organiser vos ressources Azure et votre hiérarchie de gestion.