ARM 템플릿의 데이터 형식

이 문서에서는 ARM 템플릿(Azure Resource Manager 템플릿)에서 지원되는 데이터 형식에 대해 설명합니다.

지원되는 유형

ARM 템플릿 내에서 다음 데이터 형식을 사용할 수 있습니다.

  • 배열
  • 부울
  • int
  • 개체
  • secureObject
  • securestring
  • string

배열

배열은 왼쪽 대괄호([)로 시작하고 오른쪽 대괄호(])로 끝납니다. 배열은 한 줄 또는 여러 줄로 선언할 수 있습니다. 각 요소는 쉼표로 구분됩니다.

"parameters": {
  "exampleArray": {
    "type": "array",
    "defaultValue": [
      1,
      2,
      3
    ]
  }
},

"outputs": {
  "arrayOutput": {
    "type": "array",
    "value": "[variables('exampleArray')]"
  },
  "firstExampleArrayElement": {
    "type": "int",
    "value": "[parameters('exampleArray')[0]]"
  }
}

배열의 요소는 동일한 형식이거나 다른 형식일 수 있습니다.

"variables": {
  "mixedArray": [
    "[resourceGroup().name]",
    1,
    true,
    "example string"
  ]
}

"outputs": {
  "arrayOutput": {
    "type": "array",
    "value": "[variables('mixedArray')]"
  },
  "firstMixedArrayElement": {
    "type": "string",
    "value": "[variables('mixedArray')[0]]"
  }
}

부울

부울 값을 지정할 때 사용 true 하거나 false. 값을 따옴표로 묶지 마세요.

"parameters": {
  "exampleBool": {
    "type": "bool",
    "defaultValue": true
  }
},

정수

정수 값을 지정할 때는 따옴표를 사용하지 마세요.

"parameters": {
  "exampleInt": {
    "type": "int",
    "defaultValue": 1
  }
}

인라인 매개 변수로 전달된 정수의 경우 배포에 사용하는 SDK 또는 명령줄 도구로 값 범위를 제한할 수 있습니다. 예를 들어, PowerShell을 사용하여 템플릿을 배포하는 경우 정수 형식의 범위는 -2147483648~2147483647일 수 있습니다. 이 제한을 방지하려면 매개 변수 파일에 큰 정수 값을 지정합니다. 리소스 유형은 정수 속성에 대한 자체 제한을 적용합니다.

개체

개체는 왼쪽 중괄호({)로 시작하고 오른쪽 중괄호(})로 끝납니다. 개체의 각 속성은 keyvalue로 구성됩니다. 큰 keyvalue 따옴표로 묶고 콜론(:)으로 구분됩니다. 각 속성은 쉼표로 구분합니다.

"parameters": {
  "exampleObject": {
    "type": "object",
    "defaultValue": {
      "name": "test name",
      "id": "123-abc",
      "isCurrent": true,
      "tier": 1
    }
  }
}

점 표기법을 사용하여 개체에서 속성을 가져올 수 있습니다.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "exampleObject": {
            "type": "object",
            "defaultValue": {
                "name": "test name",
                "id": "123-abc",
                "isCurrent": true,
                "tier": 1
            }
        }
    },
    "resources": [
    ],
    "outputs": {
        "nameFromObject": {
            "type": "string",
            "value": "[parameters('exampleObject').name]"
        }
    }
}

JSON에서 개체는 0개 이상 키/값 쌍의 순서가 지정되지 않은 컬렉션입니다. 순서는 구현에 따라 다를 수 있습니다. 예를 들어 Bicep items() 함수는 개체를 알파벳 순서로 정렬합니다. 다른 위치에서는 원래 순서를 유지할 수 있습니다. 이러한 비결정성 때문에 배포 매개 변수 및 출력과 상호 작용하는 코드를 작성할 때 개체 키의 순서를 가정하지 마세요.

문자열

문자열은 큰따옴표로 표시됩니다.

"parameters": {
  "exampleString": {
    "type": "string",
    "defaultValue": "test value"
  }
},

보안 문자열 및 개체

보안 문자열은 문자열과 동일한 형식을 사용하며 보안 개체는 개체와 동일한 형식을 사용합니다. 매개 변수를 보안 문자열 또는 보안 개체로 설정하면 매개 변수 값이 배포 기록에 저장되지 않고 기록되지 않습니다. 그러나 해당 보안 값을 보안 값이 필요하지 않은 속성으로 설정하면 값이 보호되지 않습니다. 예를 들어 보안 문자열을 태그로 설정하면 해당 값이 일반 텍스트로 저장됩니다. 암호 및 비밀에 보안 문자열을 사용합니다.

다음 예에서는 두 개의 보안 매개 변수를 보여줍니다.

"parameters": {
  "password": {
    "type": "securestring"
  },
  "configValues": {
    "type": "secureObject"
  }
}

참고 항목

보안 문자열이나 개체를 출력 값으로 사용하지 마세요. 보안 값을 출력 값으로 포함하면 값이 배포 기록에 표시되지 않으며 다른 템플릿에서 검색할 수 없습니다. 대신 보안 값을 키 자격 증명 모음에 저장하고 키 자격 증명 모음에서 매개 변수로 전달합니다.

다음 단계

템플릿 구문에 관해 자세히 알아보려면 ARM 템플릿의 구조 및 구문 이해를 참조하세요.