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>

Bicep 파일, ARM 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'
}

Bicep 구문을 사용하여 개체배열을 선언합니다.

File name

Bicep 매개 변수 파일의 파일 확장명은 .bicepparam입니다.

다른 환경에 배포하려면 둘 이상의 매개 변수 파일을 만듭니다. 매개 변수 파일의 이름을 지정할 때 개발 및 프로덕션 등의 용도를 확인합니다. 예를 들어 main.dev.bicepparammain.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 파일에서 사용 가능한 매개 변수와 해당 설명을 묻는 메시지가 표시됩니다.

사용 가능한 매개변수 프롬프트의 스크린샷.

매개 변수 이름을 마우스로 가리키면 매개 변수 데이터 형식 및 설명을 볼 수 있습니다.

매개변수 데이터 형식 및 설명의 스크린샷.

매개 변수 유형을 확인합니다. 매개 변수 파일의 매개 변수 형식은 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'

매개 변수 파일 생성

매개 변수 파일을 생성하려면 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 파일을 배포할 수 있습니다. Bicep 매개 변수 파일 내의 using 문을 사용하면 --parameters 스위치에 대한 Bicep 매개 변수 파일을 지정할 때 --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 이상이 필요합니다.

매개 변수 우선 순위

동일한 배포 작업에서 인라인 매개 변수 및 로컬 매개 변수 파일을 사용할 수 있습니다. 예를 들어 로컬 매개 변수 파일에서 일부 값을 지정하고 배포하는 동안 인라인으로 다른 값을 추가할 수 있습니다. 로컬 매개 변수 파일 및 인라인에서 매개 변수에 대한 값을 제공하는 경우 인라인 값이 우선합니다.

파일에 URI를 제공하여 외부 JSON 매개 변수 파일을 사용할 수 있습니다. 외부 Bicep 매개 변수 파일은 현재 지원되지 않습니다. 외부 매개 변수 파일을 사용할 때 인라인 또는 로컬 파일에서 다른 값을 전달할 수 없습니다. 모든 인라인 매개 변수가 무시됩니다. 외부 파일에서 모든 매개 변수 값을 제공해야 합니다.

매개 변수 이름 충돌

Bicep 파일에 PowerShell 명령의 매개 변수 중 하나와 이름이 같은 매개 변수가 포함된 경우 PowerShell은 Bicep 파일의 매개 변수를 접미사 FromTemplate로 표시합니다. 예를 들어 Bicep 파일의 ResourceGroupName이라는 매개 변수가 New-AzResourceGroupDeployment cmdlet의 ResourceGroupName 매개 변수와 충돌합니다. ResourceGroupNameFromTemplate에 대한 값을 제공하라는 메시지가 표시됩니다. 이와 같은 혼동을 방지하려면 배포 명령에 사용되지 않은 매개 변수 이름을 사용합니다.

다음 단계