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


Правило анализатора кода. Использование стабильного идентификатора ресурса

В имени ресурса не должно быть недетерминированных значений. Например, newGuid() или utcNow() нельзя использовать в имени ресурса; имя ресурса не может содержать параметр или переменную, значение по умолчанию которых использует newGuid() или utcNow().

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

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

use-stable-resource-identifiers

Решение

Следующий пример завершается сбоем во время этого теста, так как utcNow() используется в имени ресурса.

param location string = resourceGroup().location
param time string = utcNow()

resource sa 'Microsoft.Storage/storageAccounts@2023-04-01' = {
  name: 'store${toLower(time)}'
  location: location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
  properties: {
    accessTier: 'Hot'
  }
}

Это можно исправить, удалив функцию utcNow() из примера.

param location string = resourceGroup().location

resource sa 'Microsoft.Storage/storageAccounts@2023-04-01' = {
  name: 'store${uniqueString(resourceGroup().id)}'
  location: location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
  properties: {
    accessTier: 'Hot'
  }
}

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

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