연습 - Azure Resource Manager 변수를 사용하여 식 저장

완료됨

이 연습에서는 ARM(Azure Resource Manager) 템플릿 변수에 Azure Storage 계정 이름 식을 저장합니다. 그런 다음, 해당 변수를 사용하여 만들 스토리지 계정의 이름을 지정합니다.

이 연습에서는 Visual Studio Code용 Azure Resource Manager 도구를 사용합니다. Visual Studio Code에서 해당 확장을 설치해야 합니다.

변수 추가

템플릿에서 스토리지 계정 이름 식을 한 곳에 저장할 변수를 추가합니다.

  1. Visual Studio Code의 azuredeploy.json 파일에서 변수 블록 "variables":{} 의 중괄호 사이에 커서를 놓고 Enter 키를 누릅니다.

  2. 중괄호 안에 var을 입력합니다. 관련된 코드 조각 목록이 표시됩니다. arm-variable을 선택합니다.

    Screenshot of Visual Studio Code that shows the snippets for Azure Resource Manager template variables.

  3. 변수 섹션은 다음 코드와 같습니다.

    "variables": {"variable1": "value"},
    
  4. 변수 이름을 uniqueStorageName으로 변경하고 값을 "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]"로 변경합니다. 변수 섹션은 다음 코드와 같습니다.

    "variables": {
        "uniqueStorageName": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]"
      },
    

    리터럴 문자열 대신 식에 storagePrefix 매개 변수를 사용하고 있습니다. 이 부분을 제외하면 이전 단원에서 배운 것과 같은 식입니다.

  5. 리소스 섹션에서 변수를 사용합니다. name:displayName 특성의 값을 "[variables('uniqueStorageName')]"으로 변경합니다.

  6. 전체 파일은 다음 예제와 같습니다.

    {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
           "storagePrefix": {
               "type": "string",
               "minLength": 3,
               "maxLength": 11
           },
            "storageSKU": {
                "type": "string",
                "defaultValue": "Standard_LRS",
                "allowedValues": [
                    "Standard_LRS",
                    "Standard_GRS",
                    "Standard_RAGRS",
                    "Standard_ZRS",
                    "Premium_LRS",
                    "Premium_ZRS",
                    "Standard_GZRS",
                    "Standard_RAGZRS"
                ]
            }
       },
        "functions": [],
        "variables": {
        "uniqueStorageName": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]"
      },
        "resources": [{
            "name": "[variables('uniqueStorageName')]",
            "type": "Microsoft.Storage/storageAccounts",
            "apiVersion": "2019-06-01",
            "tags": {
                "displayName": "[variables('uniqueStorageName')]"
            },
            "location": "[resourceGroup().location]",
            "kind": "StorageV2",
            "sku": {
             "name": "[parameters('storageSKU')]"
           }
        }],
        "outputs": {}
    }
    

필요에 따라 템플릿을 배포합니다.

업데이트된 템플릿에는 배포한 리소스가 변경되지 않으므로 이 템플릿을 배포해도 Azure 환경이 변경되지 않습니다.

템플릿을 배포하여 성공 여부를 확인하려면 다음 Azure CLI 명령을 사용하세요. 마지막 배포에서 사용한 것과 동일한 storagePrefix 매개 변수 값을 사용해야 합니다.

templateFile="azuredeploy.json"
today=$(date +"%d-%b-%Y")
DeploymentName="addVariable-"$today

az deployment group create \
  --name $DeploymentName \
  --template-file $templateFile \
  --parameters storagePrefix={your-Prefix}

템플릿을 배포하여 성공 여부를 확인하려면 다음 Azure PowerShell 명령을 사용하세요. 마지막 배포에서 사용한 것과 동일한 storagePrefix 매개 변수 값을 사용해야 합니다.

$templateFile = "azuredeploy.json"
$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="addVariable-"+"$today"
New-AzResourceGroupDeployment `
  -Name $deploymentName `
  -TemplateFile $templateFile `
  -storagePrefix {your-Prefix}