Azure Resource Manager 템플릿 태그 및 매개 변수 파일을 사용하여 여러 Azure 배포 유지 관리

완료됨

둘 이상의 Azure 환경에 배포할 때 사용하려는 ARM(Azure Resource Manager) 템플릿의 두 가지 기능이 있습니다. ‘리소스 태그’ 및 ‘ARM 템플릿 매개 변수 파일’입니다.

환경에 더 많은 리소스를 추가하면 이러한 리소스의 용도를 식별하는 방법이 필요하다는 것을 빠르게 알게 됩니다. 리소스에는 이러한 목적에 적합한 tags: 특성이 있습니다. 더 많은 환경에 배포할 때 입력 매개 변수를 추적하는 효율적인 방법이 필요합니다. ARM 템플릿에서는 매개 변수 파일을 사용하여 각 배포 환경에 대한 매개 변수를 관리할 수 있습니다.

Azure 리소스 태그란?

리소스에 태그를 지정하여 용도를 보다 쉽게 식별하는 데 도움이 되는 값을 추가할 수 있습니다. 예를 들어 리소스가 속한 프로젝트와 환경을 나열하는 태그를 추가할 수 있습니다. 또는 리소스를 소유하는 팀이나 비용 센터를 식별하는 태그를 추가할 수 있습니다. 조직에 적합한 값을 추가합니다.

태그 값은 Azure 리소스의 개요 페이지와 비용 보고서에 표시됩니다.

Azure 리소스 태그를 만드는 방법

각 리소스에는 tags: 특성이 있습니다. 지금까지 스토리지 계정의 태그에 기본값인 displayName을 사용했습니다.

"tags": {
          "displayName": "[parameters('storageName')]"
        },

이 특성을 좀 더 유용하게 만들려면 추가 정보를 포함하는 매개 변수를 정의한 다음, tags: 특성에서 해당 매개 변수를 사용할 수 있습니다. 예를 들어, resourceTags라는 개체를 포함하는 매개 변수를 만들 수 있습니다.

"resourceTags": {
    "type": "object",
    "defaultValue": {
        "Environment": "Dev",
        "Project": "Inventory"
        }
    }

여기서는 환경 이름 및 프로젝트 이름에 대한 값을 보유하는 개체를 만들었지만 원하는 모든 항목을 정의할 수 있습니다.

그런 다음 개발 환경 및 인벤토리 프로젝트에 대한 모든 리소스에 해당 매개 변수를 사용할 수 있습니다. 예를 들어 스토리지 계정입니다.

"resources": [{
        "name": "[variables('uniqueStorageName')]",
        "type": "Microsoft.Storage/storageAccounts",
        "apiVersion": "2019-06-01",
        "tags": "[parameters('resourceTags')]",
        ...
    }],

ARM 템플릿 매개 변수 파일이란?

ARM 템플릿 매개 변수 파일은 템플릿이 실행될 때 ARM 템플릿에 전달되는 값을 보유합니다. ARM 템플릿이 배포되는 각 환경에 대해 매개 변수 파일을 사용하면 해당 특정 환경에 대해 올바른 매개 변수가 설정되었는지 확인합니다. 또한 이러한 매개 변수 값의 기록 및 유지 관리를 소스 제어에서 추적할 수 있습니다.

ARM 템플릿 매개 변수 파일을 사용하는 방법

ARM 템플릿 매개 변수 파일은 매개 변수 값을 포함하는 JSON 파일입니다. 예를 들어 지금까지 ARM 템플릿에서 사용한 매개 변수의 경우 다음과 같이 템플릿 매개 변수 파일을 만들 수 있습니다.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
      "storagePrefix": {
        "value": "storage"
      },
      "storageSKU": {
        "value": "Standard_LRS"
      },
      "resourceTags": {
        "value": {
          "Environment": "Dev",
          "Project": "Learn"
        }
      }
    }
  }

그런 다음, 각 환경에 대해 이 파일과 유사한 파일을 만들 수 있습니다. 예를 들어, 이러한 파일을 azuredeploy.parameters.dev.json 및 azuredeploy.parameters.prod.json으로 지칭하고 매개 변수에 서로 다른 값을 포함할 수 있습니다.

매개 변수 파일을 사용하여 ARM 템플릿을 배포하려면 배포 명령에서 매개 변수 파일의 경로를 지정합니다. Azure CLI에서는 .를 사용합니다 --parameters {path to parameter file}. PowerShell에서는 .를 사용합니다 -TemplateParameterFile {path to parameter file}.

templateFile="{path-to-the-template-file}"
devParameterFile="{path-to-azuredeploy.parameters.dev.json}"
az group create \
  --name myResourceGroupDev \
  --location "East US"
az deployment group create \
  --name devenvironment \
  --resource-group myResourceGroupDev \
  --template-file $templateFile \
  --parameters $devParameterFile