ARM 템플릿을 사용하여 태그 적용
이 문서에서는 ARM 템플릿(Azure Resource Manager 템플릿)을 사용하여 배포 중에 리소스, 리소스 그룹 및 구독에 태그를 지정하는 방법을 설명합니다. 태그 권장 사항 및 제한 사항은 태그를 사용하여 Azure 리소스 및 관리 계층 구조를 구성하는 방법을 참조하세요.
참고 항목
ARM 템플릿 또는 Bicep 파일을 통해 적용하는 태그는 기존 태그를 덮어씁니다.
값 적용
다음 예제에서는 세 개의 태그를 사용하여 스토리지 계정을 배포합니다. 두 개의 태그(Dept
및 Environment
)는 리터럴 값으로 설정됩니다. 한 태그(LastDeployed
)는 기본적으로 현재 날짜로 설정되는 매개 변수로 설정됩니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"utcShort": {
"type": "string",
"defaultValue": "[utcNow('d')]"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[concat('storage', uniqueString(resourceGroup().id))]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"tags": {
"Dept": "Finance",
"Environment": "Production",
"LastDeployed": "[parameters('utcShort')]"
},
"properties": {}
}
]
}
개체 적용
여러 태그를 저장하는 개체 매개 변수를 정의하고 해당 개체를 태그 요소에 적용할 수 있습니다. 이 접근법은 개체가 여러 속성을 가질 수 있기 때문에 이전 예제보다 더 많은 유연성을 제공합니다. 개체의 각 속성은 리소스에 대한 별도의 태그가 됩니다. 다음 예제에는 태그 요소에 적용되는 tagValues
라는 매개 변수가 있습니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
},
"tagValues": {
"type": "object",
"defaultValue": {
"Dept": "Finance",
"Environment": "Production"
}
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[concat('storage', uniqueString(resourceGroup().id))]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"tags": "[parameters('tagValues')]",
"properties": {}
}
]
}
JSON 문자열 적용
단일 태그에 여러 값을 저장하려면 값을 나타내는 JSON 문자열을 적용합니다. 전체 JSON 문자열은 256자를 초과할 수 없는 하나의 태그로 저장됩니다. 다음 예제에는 JSON 문자열의 여러 값을 포함하는 CostCenter
라는 단일 태그를 포함합니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[concat('storage', uniqueString(resourceGroup().id))]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"tags": {
"CostCenter": "{\"Dept\":\"Finance\",\"Environment\":\"Production\"}"
},
"properties": {}
}
]
}
리소스 그룹의 태그 적용
리소스 그룹의 태그를 리소스에 적용하려면 resourceGroup() 함수를 사용합니다. 태그 값을 가져올 때는 일부 문자가 점 표기법에서 올바르게 구문 분석되지 않으므로 tags.tag-name
구문 대신 tags[tag-name]
구문을 사용합니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[concat('storage', uniqueString(resourceGroup().id))]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"tags": {
"Dept": "[resourceGroup().tags['Dept']]",
"Environment": "[resourceGroup().tags['Environment']]"
},
"properties": {}
}
]
}
리소스 그룹 또는 구독에 태그 적용
Microsoft.Resources/tags
리소스 종류를 배포하여 리소스 그룹 또는 구독에 태그를 추가할 수 있습니다. 배포하려는 대상 리소스 그룹 또는 구독에 태그를 적용할 수 있습니다. 템플릿을 배포할 때마다 이전 태그가 바뀝니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"tagName": {
"type": "string",
"defaultValue": "TeamName"
},
"tagValue": {
"type": "string",
"defaultValue": "AppTeam1"
}
},
"resources": [
{
"type": "Microsoft.Resources/tags",
"name": "default",
"apiVersion": "2021-04-01",
"properties": {
"tags": {
"[parameters('tagName')]": "[parameters('tagValue')]"
}
}
}
]
}
리소스 그룹에 태그를 적용하려면 Azure PowerShell 또는 Azure CLI를 사용합니다. 태그를 지정하려는 리소스 그룹을 배포합니다.
New-AzResourceGroupDeployment -ResourceGroupName exampleGroup -TemplateFile https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/tags.json
az deployment group create --resource-group exampleGroup --template-uri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/tags.json
구독에 태그를 적용하려면 PowerShell 또는 Azure CLI를 사용합니다. 태그를 지정할 구독에 배포합니다.
New-AzSubscriptionDeployment -name tagresourcegroup -Location westus2 -TemplateUri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/tags.json
az deployment sub create --name tagresourcegroup --location westus2 --template-uri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/tags.json
구독 배포에 대한 자세한 내용은 구독 수준에서 리소스 그룹 및 리소스 만들기를 참조하세요.
다음 템플릿은 개체의 태그를 리소스 그룹 또는 구독에 추가합니다.
{
"$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"tags": {
"type": "object",
"defaultValue": {
"TeamName": "AppTeam1",
"Dept": "Finance",
"Environment": "Production"
}
}
},
"resources": [
{
"type": "Microsoft.Resources/tags",
"apiVersion": "2021-04-01",
"name": "default",
"properties": {
"tags": "[parameters('tags')]"
}
}
]
}
다음 단계
- 일부 리소스 유형은 태그를 지원하지 않습니다. 리소스 종류에 태그를 적용할 수 있는지 확인하려면 Azure 리소스에 대한 태그 지원을 참조하세요.
- 태그 지정 전략을 구현하는 방법에 관한 권장 사항은 리소스 명명 및 태그 지정 결정 가이드를 참조하세요.
- 태그 권장 사항 및 제한 사항은 태그를 사용하여 Azure 리소스 및 관리 계층 구조를 구성하는 방법을 참조하세요.