Sdílet prostřednictvím


Pravidlo Linteru – zkratové okruhy citlivostní

Toto pravidlo zjistí, kdy se hodnoty modulu modulu předávají jako parametry, které je pak používají k určení ID prostředků (například když se parametr používá k určení názvu, subscriptionId, resourceGroup, podmínky, oboru nebo apiVersion jednoho nebo více prostředků v rámci modulu) a označuje potenciální zkratování.

Poznámka:

Toto pravidlo je ve výchozím nastavení vypnuté, změňte úroveň v bicepconfig.json , aby se povolila.

Kód pravidla Linteru

K přizpůsobení nastavení pravidel použijte v konfiguračním souboru Bicep následující hodnotu:

what-if-short-circuiting

Řešení

Toto pravidlo kontroluje hodnoty modulu runtime sloužící k určení ID prostředků v modulech. Upozorní vás, pokud by váš kód Bicep mohl způsobit zkratování citlivostní analýzy. V následujícím příkladu by se appServiceOutputs a appServiceTests označily příznakem pro krátké okruhy citlivostní analýzy, protože do modulu předávají hodnoty modulu runtime, které je používají při pojmenování prostředku:

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'

Chcete-li se tomuto problému vyhnout, použijte konstanty času nasazení pro hodnoty, které se používají při určování ID prostředků.

Další kroky

Další informace o linteru naleznete v tématu Použití linter Bicep.