Bicep을 사용하여 태그 적용

이 문서에서는 Bicep을 사용하여 배포 중에 리소스, 리소스 그룹 및 구독에 태그를 지정하는 방법을 설명합니다. 태그 권장 사항 및 제한 사항은 태그를 사용하여 Azure 리소스 및 관리 계층 구조를 구성하는 방법을 참조하세요.

참고 항목

Bicep 파일을 통해 적용하는 태그는 기존 태그를 덮어씁니다.

값 적용

다음 예제에서는 세 개의 태그를 사용하여 스토리지 계정을 배포합니다. 두 개의 태그(DeptEnvironment)는 리터럴 값으로 설정됩니다. 한 태그(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 문자열 적용

단일 태그에 여러 값을 저장하려면 값을 나타내는 JSON 문자열을 적용합니다. 전체 JSON 문자열은 256자를 초과할 수 없는 하나의 태그로 저장됩니다. 다음 예제에는 JSON 문자열의 여러 값을 포함하는 CostCenter라는 단일 태그를 포함합니다.

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

다음 단계