Regra do Linter – utilizar um identificador de recurso estável

O nome do recurso não deve utilizar um valor não determinista. Por exemplo, newGuid() ou utcNow() não pode ser utilizado no nome do recurso; o nome do recurso não pode conter um parâmetro/variável cujo valor predefinido utiliza newGuid() ou utcNow().

Código de regra do Linter

Utilize o seguinte valor no ficheiro de configuração do Bicep para personalizar as definições de regras:

use-stable-resource-identifiers

Solução

O exemplo seguinte falha neste teste porque utcNow() é utilizado no nome do recurso.

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

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

Pode corrigi-la ao remover a utcNow() função do exemplo.

param location string = resourceGroup().location

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

Passos seguintes

Para obter mais informações sobre o linter, veja Utilizar o linter Bicep.