Linter 规则 - 项目参数

此规则验证项目参数是否已正确定义。 若要通过测试,必须满足以下条件:

  • 如果提供一个参数(_artifactsLocation_artifactsLocationSasToken),则必须提供另一个参数。
  • _artifactsLocation 必须是字符串。
  • 如果 _artifactsLocation 具有默认值,则它必须是 deployment().properties.templateLink.uri 或其默认值的原始 URL。
  • _artifactsLocationSasToken 必须是安全字符串。
  • 如果 _artifactsLocationSasToken 具有默认值,则它必须是空字符串。
  • 如果引用的模块具有 _artifactsLocation_artifactsLocationSasToken 参数,则必须为这些参数传入一个值,即使它们在模块中具有默认值也是如此。

Linter 规则代码

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

artifacts-parameters

解决方案

下面的示例未通过此测试,因为缺少 _artifactsLocationSasToken

@description('The base URI where artifacts required by this template are located including a trailing \'/\'')
param _artifactsLocation string = deployment().properties.templateLink.uri

...

下一个示例未通过此测试,因为 _artifactsLocation 必须为 deployment().properties.templateLink.uri 或提供有默认值情况下的原始 URL,并且 _artifactsLocationSasToken 的默认值不是空字符串。

@description('The base URI where artifacts required by this template are located including a trailing \'/\'')
param _artifactsLocation string = 'something'

@description('SAS Token for accessing script path')
@secure()
param _artifactsLocationSasToken string = 'something'

...

此示例通过了此测试。

@description('The base URI where artifacts required by this template are located including a trailing \'/\'')
param _artifactsLocation string = deployment().properties.templateLink.uri

@description('SAS Token for accessing script path')
@secure()
param _artifactsLocationSasToken string = ''

...

后续步骤

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