Udostępnij za pośrednictwem


Reguła lintera — użyj stabilnego identyfikatora zasobu

Nazwa zasobu nie powinna używać wartości niedeterministycznej. Na przykład newGuid() lub utcNow() nie można jej użyć w nazwie zasobu; nazwa zasobu nie może zawierać parametru/zmiennej, której wartość domyślna używa newGuid() lub utcNow().

Kod reguły Linter

Użyj następującej wartości w pliku konfiguracji Bicep, aby dostosować ustawienia reguły:

use-stable-resource-identifiers

Rozwiązanie

Poniższy przykład kończy się niepowodzeniem tego testu, ponieważ utcNow() jest używany w nazwie zasobu.

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'
  }
}

Możesz rozwiązać ten problem, usuwając utcNow() funkcję z przykładu.

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'
  }
}

Następne kroki

Aby uzyskać więcej informacji na temat lintera, zobacz Use Bicep linter (Używanie lintera Bicep).