Linter 규칙 - 모듈 위치 매개 변수에 명시적 값 사용
이 규칙은 리소스 위치에 사용되는 모듈 매개 변수를 찾고 실수로 기본값이 예기치 않은 값으로 설정될 수 있습니다.
Linter 규칙 코드
Bicep 구성 파일의 다음 값을 사용하여 규칙 설정을 사용자 지정합니다.
explicit-values-for-loc-params
솔루션
모듈을 사용할 때 기본값이 있는 위치 관련 매개 변수에는 명시적 값이 할당되어야 합니다. 위치 관련 매개 변수에는 resourceGroup().location
또는 deployment().location
을 참조하는 기본값이 있는 매개 변수와 리소스의 위치 속성에서 참조하는 매개 변수가 포함됩니다.
기본적으로 리소스 그룹 또는 배포 위치로 설정되는 매개 변수는 bicep 파일이 기본 배포 템플릿으로 사용될 때 편리합니다. 그러나 이러한 기본값을 모듈에서 사용하는 경우 기본 템플릿의 리소스가 리소스 그룹과 동일한 지역에 있지 않은 경우 예기치 않은 동작이 발생할 수 있습니다.
예제
다음 예제는 이 테스트에 실패합니다. 모듈m1
의 매개 변수 location
에는 명시적 값이 할당되지 않으므로 module1.bicep에 지정된 대로 기본값resourceGroup().location
으로 지정됩니다. 그러나 리소스 그룹 위치를 사용하는 것은 의도한 동작이 아닐 수 있습니다. main.bicep의 다른 리소스가 리소스 그룹의 위치와 다른 위치에 만들어질 수 있기 때문입니다.
main.bicep:
param location string = 'eastus'
module m1 'module1.bicep' = {
name: 'm1'
}
resource storageaccount 'Microsoft.Storage/storageAccounts@2024-03-01' = {
name: 'storageaccount'
location: location
kind: 'StorageV2'
sku: {
name: 'Standard_LRS'
}
}
module1.bicep:
param location string = resourceGroup().location
resource stg 'Microsoft.Storage/storageAccounts@2024-03-01' = {
name: 'stg'
location: location
kind: 'StorageV2'
sku: {
name: 'Premium_LRS'
}
}
모듈의 location
속성 값을 명시적으로 전달하여 오류를 수정할 수 있습니다.
main.bicep:
param location string = 'eastus'
module m1 'module1.bicep' = {
name: 'm1'
params: {
location: location // An explicit value will override the default value specified in module1.bicep
}
}
resource storageaccount 'Microsoft.Storage/storageAccounts@2024-03-01' = {
name: 'storageaccount'
location: location
kind: 'StorageV2'
sku: {
name: 'Standard_LRS'
}
}
다음 단계
Linter에 관한 자세한 내용은 Bicep Linter 사용을 참조하세요.