Freigeben über


Linterregel: Verwenden des stabilen Ressourcenbezeichners

Der Ressourcenname muss einen deterministischen Wert verwenden. Beispielsweise kann newGuid() oder utcNow() nicht im Ressourcennamen verwendet werden. Der Ressourcenname darf keinen Parameter/Variablen enthalten, deren Standardwert newGuid() oder utcNow() verwendet.

Linter-Regelcode

Verwenden Sie den folgenden Wert in der Bicep-Konfigurationsdatei, um die Regeleinstellungen anzupassen:

use-stable-resource-identifiers

Lösung

Im folgenden Beispiel schlägt dieser Test fehl, da utcNow() im Ressourcennamen verwendet wird.

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

Sie können dies beheben, indem Sie die Funktion utcNow() aus dem Beispiel entfernen.

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

Nächste Schritte

Weitere Informationen über den Linter finden Sie unter Verwendung des Bicep-Linters.