Linter 规则:管理员用户名不应为文本

此规则查找管理员用户名何时设置为文本值。

Linter 规则代码

请在 Bicep 配置文件中使用以下值自定义规则设置:

adminusername-should-not-be-literal

解决方案

不要使用文本值或计算结果为文本值的表达式。 请改为为用户名创建参数,并将其分配给管理员用户名。

以下示例未通过此测试,因为用户名为文本值。

resource vm 'Microsoft.Compute/virtualMachines@2023-03-01' = {
  name: 'name'
  location: location
  properties: {
    osProfile: {
      adminUsername: 'adminUsername'
    }
  }
}

下一个示例未通过此测试,因为表达式在使用默认值时计算结果为文本值。

var defaultAdmin = 'administrator'
resource vm 'Microsoft.Compute/virtualMachines@2023-03-01' = {
  name: 'name'
  location: location
  properties: {
    osProfile: {
      adminUsername: defaultAdmin
    }
  }
}

此示例通过了此测试。

@secure()
param adminUsername string
param location string
resource vm 'Microsoft.Compute/virtualMachines@2023-03-01' = {
  name: 'name'
  location: location
  properties: {
    osProfile: {
      adminUsername: adminUsername
    }
  }
}

后续步骤

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