Поделиться через


Правило Linter — что если короткое замыкание

Это правило определяет, когда значения среды выполнения передаются в качестве параметров модулям, которые, в свою очередь, используют их для определения идентификаторов ресурсов (например, когда параметр используется для определения имени, subscriptionId, resourceGroup, условия, области или apiVersion одного или нескольких ресурсов в модуле) и помечает, что если короткий канал.

Примечание.

Это правило по умолчанию отключено, измените уровень в bicepconfig.json , чтобы включить его.

Код правила анализатора кода

Для настройки параметров правил укажите в файле конфигурации Bicep следующее значение:

what-if-short-circuiting

Решение

Это правило проверяет значения среды выполнения, используемые для определения идентификаторов ресурсов в модулях. Он оповещает вас, если ваш код Bicep может привести к тому, что если короткое замыкание. В приведенном ниже примере 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'

Чтобы избежать этой проблемы, используйте константы времени развертывания для значений, используемых при определении идентификаторов ресурсов.

Следующие шаги

Дополнительные сведения об анализаторе кода Bicep см. в разделе Использование анализатора кода Bicep.