Bicep を使用してタグを適用する
この記事では、Bicep を使用して、デプロイ中にリソース、リソース グループ、サブスクリプションにタグを付ける方法について説明します。 タグの推奨事項と制限事項については、「タグを使用して Azure リソースと管理階層を整理する」を参照してください。
Note
Bicep ファイルを使用して適用したタグによって、既存のタグが上書きされます。
値を適用する
次の例では、3 つのタグが適用されたストレージ アカウントがデプロイされます。 2 つのタグ (Dept
と Environment
) にはリテラル値が設定されます。 1 つのタグ (LastDeployed
) には、現在の日付が既定値のパラメーターが設定されます。
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
}
}
オブジェクトを適用する
複数のタグを格納するオブジェクト パラメーターを定義し、そのオブジェクトをタグ要素に適用できます。 この方法では、オブジェクトは異なるプロパティを持つことができるため、前の例より柔軟性が高くなります。 オブジェクト内の各プロパティがリソースの個々のタグになります。 次の例は、タグ要素に適用される tagValues
という名前のパラメーターを示しています。
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
}
JSON 文字列を適用する
1 つのタグに複数の値を格納するには、値を表す JSON 文字列を適用します。 JSON 文字列全体は、1 つのタグとして格納されます。256 文字以下にする必要があります。 次の例は、JSON 文字列で複数の値を格納する CostCenter
という名前の 1 つのタグを示しています。
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"}'
}
}
リソース グループからタグを適用する
リソース グループからリソースにタグを適用するには、resourceGroup() 関数を使います。 タグの値を取得するときは、tags.tag-name
構文ではなく tags[tag-name]
構文を使います。これは、ドット表記では一部の文字が正しく解析されないためです。
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']
}
}
リソース グループまたはサブスクリプションにタグを適用する
リソースの種類 Microsoft.Resources/tags
をデプロイすることにより、リソース グループまたはサブスクリプションにタグを追加できます。 デプロイするターゲット リソース グループまたはサブスクリプションにタグを適用できます。 テンプレートをデプロイするたびに、以前のタグがすべて置き換えられます。
param tagName string = 'TeamName'
param tagValue string = 'AppTeam1'
resource applyTags 'Microsoft.Resources/tags@2021-04-01' = {
name: 'default'
properties: {
tags: {
'${tagName}': tagValue
}
}
}
次の Bicep は、オブジェクトのタグをデプロイ先のサブスクリプションに追加します。 サブスクリプション デプロイの詳細については、「サブスクリプション レベルでリソース グループとリソースを作成する」を参照してください。
targetScope = 'subscription'
param tagObject object = {
TeamName: 'AppTeam1'
Dept: 'Finance'
Environment: 'Production'
}
resource applyTags 'Microsoft.Resources/tags@2021-04-01' = {
name: 'default'
properties: {
tags: tagObject
}
}
次のステップ
- すべてのリソースの種類で、タグがサポートされるわけではありません。 リソースの種類にタグを適用することができるかどうかを確認するには、Azure リソースに対するタグのサポートに関する記事を参照してください。
- タグ付け戦略の実装方法に関する推奨事項については、「リソースの名前付けとタグ付けの意思決定ガイド」を参照してください。
- タグの推奨事項と制限事項については、「タグを使用して Azure リソースと管理階層を整理する」を参照してください。