Bicep 배포를 위한 매개 변수 파일 만들기
스크립트에서 매개 변수를 인라인 값으로 전달하는 대신 확장자가 .bicepparam
인 Bicep 매개 변수 파일이나 매개 변수 값이 포함된 JSON 매개 변수 파일을 사용할 수 있습니다. 이 문서에서는 매개 변수 파일을 만드는 방법을 보여줍니다.
참고 항목
Bicep 매개 변수 파일은 Bicep CLI 버전 0.18.4 이상, Azure CLI 버전 2.47.0 이상, Azure PowerShell 버전 9.7.1 이상에서만 지원됩니다.
단일 Bicep 파일에는 여러 Bicep 매개 변수 파일이 연결되어 있을 수 있습니다. 그러나 각 Bicep 매개 변수 파일은 하나의 특정 Bicep 파일을 위한 것입니다. 이 관계는 Bicep 매개 변수 파일 내의 using 문 과 함께 설정됩니다.
Bicep 매개 변수 파일을 JSON 매개 변수 파일로 컴파일하여 Bicep 파일과 함께 배포할 수 있습니다. 빌드 매개 변수를 참조하세요. JSON 매개 변수 파일을 Bicep 매개 변수 파일로 디컴파일할 수도 있습니다. 디컴파일 매개 변수를 참조하세요.
매개 변수 파일
매개 변수 파일은 다음 형식을 사용합니다.
using '<path>/<file-name>.bicep'
param <first-parameter-name> = <first-value>
param <second-parameter-name> = <second-value>
using 문을 Bicep 파일, Azure Resource Manager JSON 템플릿, Bicep 모듈 및 템플릿 사양과 함께 사용할 수 있습니다. 예시:
using './main.bicep'
...
using './azuredeploy.json'
...
using 'br/public:avm/res/storage/storage-account:0.9.0'
...
using 'br:myacr.azurecr.io/bicep/modules/storage:v1'
...
using 'ts:00000000-0000-0000-0000-000000000000/myResourceGroup/storageSpec:1.0'
...
자세한 내용은 문 사용을 참조하세요.
기본값으로 식을 사용할 수 있습니다. 예시:
using 'main.bicep'
param storageName = toLower('MyStorageAccount')
param intValue = 2 + 2
환경 변수를 매개 변수 값으로 참조할 수 있습니다. 예시:
using './main.bicep'
param intFromEnvironmentVariables = int(readEnvironmentVariable('intEnvVariableName'))
변수를 정의하고 사용할 수 있습니다. .bicepparam 파일에서 변수를 사용하려면 Bicep CLI 버전 0.21.X 이상이 필요합니다. 다음 몇 가지 예를 참조하세요.
using './main.bicep'
var storagePrefix = 'myStorage'
param primaryStorageName = '${storagePrefix}Primary'
param secondaryStorageName = '${storagePrefix}Secondary'
using './main.bicep'
var testSettings = {
instanceSize: 'Small'
instanceCount: 1
}
var prodSettings = {
instanceSize: 'Large'
instanceCount: 4
}
param environmentSettings = {
test: testSettings
prod: prodSettings
}
매개 변수 파일이 매개 변수 값을 일반 텍스트로 저장한다는 점에 주목할 가치가 있습니다. 보안상의 이유로 이 방식은 암호와 같은 중요한 값에 권장되지 않습니다. 중요한 값이 있는 매개 변수를 전달해야 하는 경우 키 자격 증명 모음에 값을 보관합니다. 매개 변수 파일에 중요한 값을 추가하는 대신 getSecret 함수를 사용하여 검색합니다. 자세한 내용은 Azure Key Vault를 사용하여 Bicep 배포 중에 보안 매개 변수 값 전달을 참조하세요.
매개 변수 유형 형식
다음 예에서는 문자열, 정수, 부울, 배열 및 개체와 같은 다양한 매개 변수 유형의 형식을 보여 줍니다.
using './main.bicep'
param exampleString = 'test string'
param exampleInt = 2 + 2
param exampleBool = true
param exampleArray = [
'value 1'
'value 2'
]
param exampleObject = {
property1: 'value 1'
property2: 'value 2'
}
File name
Bicep 매개 변수 파일의 파일 확장명은 .bicepparam
입니다.
다른 환경에 배포하려면 둘 이상의 매개 변수 파일을 만듭니다. 여러 매개 변수 파일의 이름을 지정할 때 해당 파일의 사용을 개발 및 프로덕션으로 레이블을 지정합니다. 예를 들어 개발에 main.dev.bicepparam을 사용하고 프로덕션에 main.prod.bicepparam을 사용하여 리소스를 배포합니다.
매개 변수 값 정의
매개 변수 이름 및 값을 정의하는 방법을 결정하려면 Bicep 파일을 엽니다. Bicep 파일의 매개 변수 섹션을 확인합니다. 다음 예제에서는 Bicep 파일 main.bicep
의 매개 변수를 보여 줍니다.
@maxLength(11)
param storagePrefix string
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_ZRS'
'Premium_LRS'
])
param storageAccountType string = 'Standard_LRS'
매개 변수 파일에서 확인할 첫 번째 세부 정보는 각 매개 변수의 이름입니다. 매개 변수 파일의 매개 변수 이름은 Bicep 파일의 매개 변수 이름과 일치해야 합니다.
using 'main.bicep'
param storagePrefix
param storageAccountType
using
문은 Bicep 매개 변수 파일을 Bicep 파일에 연결합니다. 자세한 내용은 using 문을 참조하세요.
Visual Studio Code에서 param
키워드를 입력하면 연결된 Bicep 파일에서 사용 가능한 매개 변수와 해당 설명을 묻는 메시지가 표시됩니다.
매개 변수 이름을 마우스로 가리키면 매개 변수 데이터 형식 및 설명을 볼 수 있습니다.
매개 변수 유형을 확인합니다. 매개 변수 파일의 매개 변수 형식은 Bicep 파일과 동일한 형식을 사용해야 합니다. 이 예에서 두 매개 변수 형식은 모두 문자열입니다.
using 'main.bicep'
param storagePrefix = ''
param storageAccountType = ''
Bicep 파일에서 기본 값을 사용하여 매개 변수를 확인합니다. 매개 변수에 기본값이 있는 경우 매개 변수 파일에 값을 제공할 수 있지만 필수는 아닙니다. 매개 변수 파일 값은 Bicep 파일의 기본값을 재정의합니다.
using 'main.bicep'
param storagePrefix = '' // This value must be provided.
param storageAccountType = '' // This value is optional. Bicep will use default value if not provided.
Bicep 파일의 허용되는 값 및 최대 길이와 같은 제한 사항을 확인합니다. 이러한 값은 매개 변수에 제공할 수 있는 값의 범위를 지정합니다. 이 예제 storagePrefix
에서는 최대 11자를 가질 수 있으며 storageAccountType
허용되는 값을 지정해야 합니다.
using 'main.bicep'
param storagePrefix = 'storage'
param storageAccountType = 'Standard_ZRS'
매개 변수 파일 생성
VS Code 또는 Bicep CLI를 사용하여 매개 변수 파일을 두 가지 방법으로 만들 수 있습니다. 두 도구 모두 Bicep 파일을 사용하여 매개 변수 파일을 생성할 수 있습니다. VS Code 메서드에 대한 매개 변수 파일 생성 및 Bicep CLI 메서드에 대한 매개 변수 파일 생성을 참조하세요.
Bicep 매개 변수 파일 빌드
Bicep CLI에서 Bicep 매개 변수 파일을 JSON 매개 변수 파일로 빌드할 수 있습니다. 자세한 내용은 빌드 매개 변수 파일을 참조하세요.
매개 변수 파일을 사용하여 Bicep 파일 배포
Azure CLI
Azure CLI에서 Bicep 파일 배포를 사용하여 매개 변수 파일을 전달할 수 있습니다.
Azure CLI 버전 2.53.0 이상 및 Bicep CLI 버전 0.22.X 이상에서 Bicep 매개 변수 파일을 사용하여 Bicep 파일을 배포할 수 있습니다. using
Bicep 매개 변수 파일 내의 문을 사용하면 스위치에 대한 Bicep 매개 변수 파일을 지정할 때 스위치를 --parameters
제공할 --template-file
필요가 없습니다.
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--parameters storage.bicepparam
동일한 배포 작업에서 인라인 매개 변수 및 위치 매개 변수 파일을 사용할 수 있습니다. 예시:
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--parameters storage.bicepparam \
--parameters storageAccountType=Standard_LRS
자세한 내용은 Bicep 및 Azure CLI를 사용하여 리소스 배포를 참조하세요.
Azure PowerShell
Azure PowerShell에서 TemplateParameterFile
매개 변수를 사용하여 로컬 매개 변수 파일을 전달합니다.
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile C:\MyTemplates\storage.bicep `
-TemplateParameterFile C:\MyTemplates\storage.bicepparam
동일한 배포 작업에서 인라인 매개 변수 및 위치 매개 변수 파일을 사용할 수 있습니다. 예시:
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile C:\MyTemplates\storage.bicep `
-TemplateParameterFile C:\MyTemplates\storage.bicepparam `
-storageAccountType Standard_LRS
자세한 내용은 Bicep 및 Azure PowerShell을 사용하여 리소스 배포를 참조하세요. .bicep 파일을 배포하려면 Azure PowerShell 버전 5.6.0 이상이 필요합니다.
매개 변수 우선 순위
동일한 배포 작업에서 인라인 매개 변수 및 로컬 매개 변수 파일을 사용할 수 있습니다. 예를 들어 로컬 매개 변수 파일에서 일부 값을 지정하고 배포하는 동안 인라인으로 다른 값을 추가할 수 있습니다. 로컬 매개 변수 파일 및 인라인에서 매개 변수에 대한 값을 제공하는 경우 인라인 값이 우선합니다.
외부 Bicep 매개 변수 파일은 현재 지원되지 않지만 파일에 URI를 제공하여 외부 JSON 매개 변수 파일을 사용할 수 있습니다. 외부 매개 변수 파일을 사용하는 경우 인라인 또는 로컬 파일에서 다른 값을 전달할 수 없고 모든 인라인 매개 변수가 무시되므로 외부 파일의 모든 매개 변수 값을 제공합니다.
매개 변수 이름 충돌
Bicep 파일에 PowerShell 명령의 매개 변수 중 하나와 이름이 같은 매개 변수가 포함된 경우 PowerShell은 Bicep 파일의 매개 변수를 후위와 함께 FromTemplate
표시합니다. 예를 들어 Bicep 파일의 ResourceGroupName
이라는 매개 변수가 New-AzResourceGroupDeployment cmdlet의 ResourceGroupName
매개 변수와 충돌합니다. ResourceGroupNameFromTemplate
에 대한 값을 제공하라는 메시지가 표시됩니다. 이와 같은 혼동을 방지하려면 배포 명령에 사용되지 않은 매개 변수 이름을 사용합니다.
다음 단계
- Bicep 파일에서 매개 변수를 정의하는 방법에 대한 자세한 내용은 Bicep의 매개 변수를 참조하세요.
- 중요한 값을 받으려면 Azure Key Vault를 사용하여 배포 중에 보안 매개 변수 값 전달을 참조하세요.