Bicep 매개 변수 파일을 사용하면 개별 파일에서 값을 정의한 다음 해당 값을 main.bicep 파일에 전달할 수 있습니다. 매개 변수 파일은 지정된 구독, 환경 및/또는 지역에서 변경될 수 있는 값을 노출합니다. 매개 변수 파일을 활용하면 IaC 배포의 일관성을 확보하는 동시에 유연성도 제공됩니다. 이러한 유연성 덕분에 조직은 핵심 인프라를 동일하게 유지하면서 개발 및 테스팅 환경의 규모를 적절하게 조정하여 비용상의 이점을 활용할 수 있습니다.
이러한 매개 변수 파일은 간소화된 CI/CD 배포 방식을 구현하는 데에도 도움이 됩니다. 각 매개 변수 파일은 소스 제어를 받으며 적절한 자동 배포 단계로 전달됩니다. 이러한 매개 변수 파일은 일관된 배포 환경을 보장합니다.
이 문서에서는 스크립트에서 인라인 값으로 매개 변수를 전달하는 대신 사용할 수 있는 매개 변수 파일을 만드는 방법을 보여 줍니다.
.bicepparam 파일 확장명을 가진 Bicep 매개 변수 파일이나 매개 변수 값이 포함된 JSON 매개 변수 파일을 사용할 수 있습니다.
참고
Bicep 매개 변수 파일은 Bicep CLI 버전 0.18.4 이상, Azure CLI 버전 2.47.0 이상 및 Azure PowerShell 버전 9.7.1 이상에서만 지원됩니다. 이 using none 기능은 Bicep CLI 버전 0.31.0 이상에서 지원됩니다.
단일 Bicep 파일을 여러 매개 변수 파일과 연결할 수 있습니다. 그러나 using none이 지정되지 않은 경우를 제외하고, 각 매개 변수 파일은 일반적으로 하나의 특정 Bicep 파일에 연결됩니다. 이 연결은 매개 변수 파일 내의 using 문을 사용하여 설정됩니다.
Bicep 파일을 사용하여 Bicep 매개 변수 파일을 배포할 수 있는 JSON 매개 변수 파일로 컴파일할 수 있습니다. 자세한 내용은 build-params를 참조하세요. JSON 매개 변수 파일을 Bicep 매개 변수 파일로 디컴파일할 수도 있습니다. 자세한 내용은 decompile-params를 참조하세요.
매개 변수 파일
매개 변수 파일은 다음 형식을 사용합니다.
using '<path>/<file-name>.bicep' | using none
param <first-parameter-name> = <first-value>
param <second-parameter-name> = <second-value>
Bicep 파일, JSON Azure Resource Manager 템플릿, Bicep 모듈 및 템플릿 사양을 사용하여 using 문을 적용할 수 있습니다. 예를 들면 다음과 같습니다.
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 문을 참조하세요.
작성 또는 컴파일 중에 매개 변수 파일이 특정 Bicep 템플릿에 연결되지 않았음을 나타내는 문을 적용 using none 할 수 있습니다. 이렇게 하면 매개 변수 파일을 특정 템플릿에서 분리하여 배포에서 매개 변수를 정의하고 사용하는 방법에 대한 유연성이 향상됩니다. 자세한 내용은 none 문 사용을 참조하세요.
식을 매개 변수 값으로 사용할 수 있습니다. 예를 들면 다음과 같습니다.
using './main.bicep'
param storageName = toLower('MyStorageAccount')
param intValue = 2 + 2
환경 변수를 매개 변수 값으로 참조할 수 있습니다. 예를 들면 다음과 같습니다.
using './main.bicep'
param intFromEnvironmentVariables = int(readEnvironmentVariable('intEnvVariableName'))
변수를 정의하고 사용할 수 있습니다.
파일에서 변수를 사용하려면 .bicepparam 버전 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 함수를 사용하여 해당 값을 검색합니다. 자세한 내용은 Bicep 배포 중에 Azure Key Vault를 사용하여 비밀을 매개 변수로 전달을 참조하세요.
매개 변수 유형 형식
다음 예에서는 문자열, 정수, 부울, 배열, 개체 등 다양한 매개 변수 형식의 형식을 보여 줍니다.
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'
}
파일 이름
Bicep 매개 변수 파일의 파일 확장명은 .bicepparam입니다.
여러 환경에 배포하려면 두 개 이상의 매개 변수 파일을 만듭니다. 여러 개의 매개 변수 파일을 사용하는 경우 용도에 따라 레이블을 지정합니다. 예를 들어, 리소스를 배포하려면 개발에는 main.dev.bicepparam 레이블을 사용하고 프로덕션에는 main.prod.bicepparam 레이블을 사용합니다.
매개 변수 값 정의
매개 변수 이름과 값을 정의하는 방법을 확인하려면 Bicep 파일을 엽니다. Bicep 파일의 매개 변수 섹션을 확인합니다. 다음 예에서는 main.bicep이라는 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 파일에서 사용 가능한 매개 변수와 해당 설명이 표시됩니다.
param 이름 위에 마우스를 올리면 매개 변수 데이터 형식과 설명을 볼 수 있습니다.
매개 변수 형식을 검토합니다. 매개 변수 파일의 매개 변수 형식은 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 uses default value if not provided.
최대 길이 등의 제한 사항이 있는지 알아보려면 Bicep 파일의 허용 값을 확인합니다. 허용되는 값은 매개 변수에 제공할 수 있는 값의 범위를 지정합니다. 이 예에서 storagePrefix는 최대 11자일 수 있으며 storageAccountType은 허용된 값을 지정해야 합니다.
using 'main.bicep'
param storagePrefix = 'storage'
param storageAccountType = 'Standard_ZRS'
매개 변수 파일 생성
Visual Studio Code나 Bicep CLI를 사용하여 매개 변수 파일을 만들 수 있습니다. 두 도구 모두 Bicep 파일을 사용하여 매개 변수 파일을 생성할 수 있습니다. Visual Studio 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 문을 사용하면 --template-file 스위치에 대해 Bicep 매개 변수 파일을 지정할 때 --parameters 스위치를 제공할 필요가 없습니다.
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
자세한 내용은 Azure CLI를 사용하여 Bicep 파일 배포를 참조하세요.
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
자세한 내용은 Azure PowerShell을 사용하여 Bicep 파일 배포를 참조하세요.
.bicep 파일을 배포하려면 Azure PowerShell 버전 5.6.0 이상이 필요합니다.
매개 변수 우선 순위
동일한 배포 작업에서 인라인 매개 변수 및 로컬 매개 변수 파일을 사용할 수 있습니다. 예를 들어 로컬 매개 변수 파일에서 일부 값을 지정하고 배포하는 동안 인라인으로 다른 값을 추가할 수 있습니다. 로컬 매개 변수 파일 및 인라인에서 매개 변수에 대한 값을 제공하는 경우 인라인 값이 우선합니다.
현재 외부 Bicep 매개 변수 파일은 지원되지 않지만, 파일에 URI를 제공하여 외부 JSON 매개 변수 파일을 사용할 수 있습니다. 외부 매개 변수 파일을 사용하는 경우 모든 매개 변수 값을 외부 파일에 제공합니다. 외부 파일을 사용하는 경우 다른 값을 인라인이나 로컬 파일에서 전달할 수 없으며 모든 인라인 매개 변수는 무시됩니다.
매개 변수 이름 충돌
Bicep 파일에 Azure PowerShell 명령의 매개 변수 중 하나와 동일한 이름의 매개 변수가 포함되어 있는 경우 Azure PowerShell은 Bicep 파일의 매개 변수를 FromTemplate 접미사로 표시합니다. 예를 들어, Bicep 파일의 ResourceGroupName이라는 매개 변수가 ResourceGroupName의 New-AzResourceGroupDeployment 매개 변수와 충돌하는 경우 에 대한 값을 제공하라는 메시지가 표시됩니다. 이와 같은 혼동을 방지하려면 배포 명령에 사용되지 않은 매개 변수 이름을 사용합니다.
관련 콘텐츠
- Bicep 파일에서 매개 변수를 정의하는 방법에 대한 자세한 내용은 Bicep의 매개 변수를 참조하세요.
- 중요한 값을 받으려면 Azure Key Vault를 사용하여 배포 중에 보안 매개 변수 값 전달을 참조하세요.