Linter 규칙 - 가상 단락
이 규칙은 런타임 값이 모듈에 매개 변수로 전달되는 경우를 감지하고, 이를 사용하여 리소스 ID(예: 매개 변수를 사용하여 모듈 내 하나 이상의 리소스의 이름, subscriptionId, resourceGroup, 조건, 범위 또는 apiVersion을 결정하는 경우)를 확인하고 잠재적인 가상 단락에 플래그를 지정합니다.
참고 항목
이 규칙은 기본적으로 꺼져 있습니다. bicepconfig.json의 수준을 변경하여 사용하도록 설정합니다.
Linter 규칙 코드
Bicep 구성 파일의 다음 값을 사용하여 규칙 설정을 사용자 지정합니다.
what-if-short-circuiting
솔루션
이 규칙은 모듈 내에서 리소스 ID를 확인하는 데 사용되는 런타임 값을 확인합니다. Bicep 코드로 인해 what-if 단락이 발생할 수 있는지 경고합니다. 아래 예제에서 appServiceOutputs 및 appServiceTests는 런타임 값을 매개 변수로 모듈에 전달하므로 가상 단락에 대해 플래그가 지정되며, 리소스 이름을 지정할 때 사용합니다.
main.bicep
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: 'storageAccountName'
location: 'eastus'
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
}
module appServiceModule 'modules/appService.bicep' = {
name: 'appService2'
params: {
appServiceName: 'test'
}
}
module appServiceOutputs 'modules/appService.bicep' = {
name: 'appService3'
params: {
appServiceName: appServiceModule.outputs.outputName
}
}
module appServiceTest 'modules/appService.bicep' = {
name:'test3'
params: {
appServiceName: storageAccount.properties.accessTier
}
}
modules/appService.bicep
param appServiceName string
resource appServiceApp 'Microsoft.Web/sites@2023-12-01' = {
name: appServiceName
location: 'eastus'
properties: {
httpsOnly: true
}
}
output outputName string = 'outputName'
이 문제를 방지하려면 리소스 ID를 확인하는 데 사용되는 값에 배포 시간 상수를 사용합니다.
다음 단계
Linter에 관한 자세한 내용은 Bicep Linter 사용을 참조하세요.