스크립트에서 매개 변수를 인라인 값으로 전달하는 대신 매개 변수 값이 포함된 JSON 파일을 사용할 수 있습니다. 이 문서에서는 JSON 템플릿과 함께 사용하는 매개 변수 파일을 만드는 방법을 보여줍니다.
팁 (조언)
ARM 템플릿과 동일한 기능을 제공하므로 Bicep 을 사용하는 것이 좋으며 구문을 사용하기가 더 쉽습니다. 자세한 내용은 매개 변수 파일을 참조하세요.
매개 변수 파일
매개 변수 파일은 다음 형식을 사용합니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"<first-parameter-name>": {
"value": "<first-value>"
},
"<second-parameter-name>": {
"value": "<second-value>"
}
}
}
매개 변수 파일은 매개 변수 값을 일반 텍스트로 저장합니다. 보안상의 이유로 이 방법은 암호와 같은 중요한 값에는 권장되지 않습니다. 중요한 값이 있는 매개 변수를 전달해야 하는 경우 키 자격 증명 모음에 값을 보관합니다. 그 다음 매개변수 파일에 키 보관소에 대한 참조를 포함합니다. 배포하는 동안 중요한 값이 안전하게 검색됩니다. 자세한 내용은 배포하는 동안 Azure Key Vault를 사용하여 보안 매개 변수 값을 전달하는 방법을 참조하세요.
다음 매개 변수 파일에는 일반 텍스트 값과 키 자격 증명 모음에 저장된 중요한 값이 포함됩니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"<first-parameter-name>": {
"value": "<first-value>"
},
"<second-parameter-name>": {
"reference": {
"keyVault": {
"id": "<resource-id-key-vault>"
},
"secretName": "<secret-name>"
}
}
}
}
키 자격 증명 모음의 값을 사용하는 방법에 대한 자세한 내용은 배포 중에 Azure Key Vault를 사용하여 보안 매개 변수 값을 전달합니다.
매개 변수 값 정의
매개 변수 이름 및 값을 정의하는 방법을 확인하려면 JSON 템플릿을 열고 섹션을 parameters
검토합니다. 다음 예제에서는 JSON 템플릿의 매개 변수를 보여줍니다.
"parameters": {
"storagePrefix": {
"type": "string",
"maxLength": 11
},
"storageAccountType": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_ZRS",
"Premium_LRS"
]
}
}
매개 변수 파일에서 주의해야 할 첫 번째 세부 정보는 각 매개 변수의 이름입니다. 매개 변수 파일의 매개 변수 이름은 템플릿의 매개 변수 이름과 일치해야 합니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
},
"storageAccountType": {
}
}
}
매개 변수 유형을 확인합니다. 매개 변수 파일의 매개 변수 형식은 템플릿과 동일한 형식을 사용해야 합니다. 이 예에서 두 매개 변수 형식은 모두 문자열입니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"value": ""
},
"storageAccountType": {
"value": ""
}
}
}
기본값이 있는 매개 변수에 대한 템플릿을 확인합니다. 매개 변수에 기본값이 있는 경우 매개 변수 파일에 값을 제공할 수 있지만 필수는 아닙니다. 매개 변수 파일 값은 템플릿의 기본값을 재정의합니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"value": "" // This value must be provided.
},
"storageAccountType": {
"value": "" // This value is optional. Template will use default value if not provided.
}
}
}
템플릿의 허용되는 값과 최대 길이와 같은 제한 사항을 확인합니다. 이러한 값은 매개 변수에 제공할 수 있는 값의 범위를 지정합니다. 이 예제 storagePrefix
에서는 최대 11자를 가질 수 있으며 storageAccountType
허용되는 값을 지정해야 합니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"value": "storage"
},
"storageAccountType": {
"value": "Standard_ZRS"
}
}
}
비고
매개 변수 파일에는 템플릿에 정의된 매개 변수에 대한 값만 포함될 수 있습니다. 매개 변수 파일에 템플릿의 매개 변수와 일치하지 않는 추가 매개 변수가 포함되어 있으면 오류가 발생합니다.
매개 변수 유형 형식
다음 예에서는 문자열, 정수, 부울, 배열 및 개체와 같은 다양한 매개 변수 유형의 형식을 보여 줍니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"exampleString": {
"value": "test string"
},
"exampleInt": {
"value": 4
},
"exampleBool": {
"value": true
},
"exampleArray": {
"value": [
"value 1",
"value 2"
]
},
"exampleObject": {
"value": {
"property1": "value1",
"property2": "value2"
}
}
}
}
매개 변수 파일을 사용하여 템플릿 배포
Azure CLI에서 사용 하 여 @
로컬 매개 변수 파일 및 매개 변수 파일 이름을 전달 합니다. 예: @storage.parameters.json
.
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--template-file storage.json \
--parameters @storage.parameters.json
자세한 내용은 ARM 템플릿 및 Azure CLI를 사용하여 리소스 배포를 참조하세요.
Azure PowerShell에서 TemplateParameterFile
매개 변수를 사용하여 로컬 매개 파일을 전달합니다.
New-AzResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName ExampleResourceGroup `
-TemplateFile C:\MyTemplates\storage.json `
-TemplateParameterFile C:\MyTemplates\storage.parameters.json
자세한 내용은 ARM 템플릿 및 Azure PowerShell을 사용하여 리소스 배포를 참조하세요.
비고
포털에서 사용자 지정 템플릿 블레이드와 함께 매개 변수 파일을 사용할 수 없습니다.
팁 (조언)
Visual Studio에서 Azure 리소스 그룹 프로젝트를 사용하는 경우 매개 변수 파일에 빌드 작업이콘텐츠로 설정되어 있는지 확인합니다.
파일 이름
매개 변수 파일에 대한 일반적인 명명 규칙은 템플릿 이름에 매개 변수 를 포함하는 것입니다. 예를 들어 템플릿 이름이 azuredeploy.json경우 매개 변수 파일의 이름은 azuredeploy.parameters.json. 이 명명 규칙은 템플릿과 매개 변수 간의 연결을 확인하는 데 도움이 됩니다.
다른 환경에 배포하려면 둘 이상의 매개 변수 파일을 만듭니다. 매개 변수 파일의 이름을 지정할 때 개발 및 프로덕션과 같은 용도를 식별합니다. 예를 들어 azuredeploy.parameters-dev.json 및 azuredeploy.parameters-prod.json 사용하여 리소스를 배포합니다.
매개 변수 우선 순위
동일한 배포 작업에서 인라인 매개 변수 및 로컬 매개 변수 파일을 사용할 수 있습니다. 예를 들어 로컬 매개 변수 파일에 일부 값을 지정하고 배포 중에 다른 값을 인라인으로 추가할 수 있습니다. 로컬 매개 변수 파일과 인라인 모두에서 매개 변수에 대한 값을 제공하는 경우 인라인 값이 우선합니다.
파일에 URI를 제공하여 외부 매개 변수 파일을 사용할 수 있습니다. 외부 매개 변수 파일을 사용하는 경우 인라인 또는 로컬 파일에서 다른 값을 전달할 수 없습니다. 모든 인라인 매개 변수는 무시됩니다. 외부 파일의 모든 매개 변수 값을 제공합니다.
매개 변수 이름 충돌
템플릿에 PowerShell 명령의 매개 변수 중 하나와 이름이 같은 매개 변수가 포함된 경우 PowerShell은 템플릿의 매개 변수를 후위 FromTemplate
와 함께 표시합니다. 예를 들어 템플릿에 명명된 ResourceGroupName
매개 변수가 ResourceGroupName
cmdlet의 매개 변수와 충돌합니다.
ResourceGroupNameFromTemplate
에 대한 값을 제공하라는 메시지가 표시됩니다. 이와 같은 혼동을 방지하려면 배포 명령에 사용되지 않은 매개 변수 이름을 사용합니다.
다음 단계
- 템플릿에서 매개 변수를 정의하는 방법에 대한 자세한 내용은 ARM 템플릿의 매개 변수를 참조하세요.
- 키 자격 증명 모음의 값을 사용하는 방법에 대한 자세한 내용은 배포 중에 Azure Key Vault를 사용하여 보안 매개 변수 값을 전달합니다.