Leer en inglés

Compartir a través de

Linter 规则 - 使用稳定的资源标识符

资源名称不应使用非确定性值。 例如, newGuid()utcNow() 不能在资源名称中使用;资源名称不能包含其默认值使用 newGuid() 的参数/变量或 utcNow()

Linter 规则代码

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

后续步骤

有关 Linter 的详细信息,请参阅使用 Bicep Linter