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@2021-09-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@2021-09-01' = {
  name: 'store${uniqueString(resourceGroup().id)}'
  location: location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
  properties: {
    accessTier: 'Hot'
  }
}

后续步骤

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