使用 Azure 开发人员 CLI 元数据处理 Bicep 输入参数

Azure 开发人员 CLI (azd)支持具有 @metadata 修饰符的 Bicep 模板。 将元数据添加到 Bicep 输入参数,以使用智能默认值、自动生成值以及更好的参数提示改进部署。

添加元数据

Bicep 中的输入参数支持 @metadata 为无架构对象。 通过在参数元数据中包含azd字段来添加azd元数据。

@metadata({
  azd: {}
})
param someInput <param-type>

Azure 开发人员 CLI 元数据不依赖于参数的类型,你可以将其添加到任何参数。

支持的元数据

元数据支持的配置字段 azd 为:

领域 Description
type azd定义如何提示此参数。 例如,location
config 描述某些元数据类型的设置,例如 generate
default 定义一个值,以便在 azd 选择提示期间优先突出显示。
usageName 管理 AI 模型位置选择的配额验证。

以下各节将更详细地介绍每个字段。

类型

此配置定义如何 azd 提示输入参数。 支持的类型包括:

  • 位置

    使用 location 类型通知 azd 一个输入参数专门处理 Azure 位置。 在元数据中,当azd找到location类型时,它会使用位置选择列表提示填写值。 例如:

    @metadata({
      azd: {
        type: 'location'
      }
    })
    param someInput string
    

    提示流:

    显示带有元数据的位置提示的屏幕截图。

    location 类型与 default 字段组合,以控制在提示流程中首先突出显示的位置。 例如:

    @metadata({
      azd: {
        type: 'location'
        default: 'westus'
      }
    })
    param someInput string
    

    提示流:

    显示一个提示输入位置,以及包含默认值的元数据的屏幕截图。

    突出显示的默认选项与中的字段匹配。 此方法使模板作者可以推荐一个位置,而用户可以确认或更改位置。 在 Bicep 中为输入参数设置默认值会跳过提示流,并使用默认值而不进行用户确认。

  • 生成

    使用 generate 类型指示 azd 自动为输入参数创建值。 此类型通常用于生成密码或唯一标识符:

    @metadata({
      azd: {
        type: 'generate'
        config: {
          length: 10
        }
      }
    })
    param someInput string
    

    注释

    字段configtype: 'generate'时是必需的。

    azd运行时,它会为输入参数生成 10 个字符的值,而无需提示输入。 有关配置自动生成值的选项,请参阅 配置 部分。

  • resourceGroup

    使用 resourceGroup 类型告知 azd 提示输入此资源组:

    @metadata({
      azd: {
        type: 'resourceGroup'
      }
    })
    param someInput string
    

    提示流:

    显示包含资源组类型的提示的屏幕截图。

Config

config 对象是类型 generate 所必需的。 它控制自动生成选项。 下表描述了生成配置选项:

字段名称 类型 Description 违约
length int 生成的值的总长度 0
noLower 布尔 如果为 true,则排除小写字母。
noUpper 布尔 如果为 true,则排除大写字母。
noNumeric 布尔 如果为 true,则排除数字。
noSpecial 布尔 如果为 true,则排除特殊字符。
最小值下限 int 所需的最小小写字母数。 0
minUpper int 所需要求的大写字母的最小数量。 0
minNumeric int 所需的最小数字数。 0
minSpecial int 所需的最小特殊字符数。 0

重要

所有最低要求的总和(MinLower + MinUpper + MinNumeric + MinSpecial)不能超过总长度。 如果有任何“No-”标志为 true,请将相应的“Min-”值设置为 0。

例如,生成一个长度为 10 且不包含特殊字符和数字的值。

@metadata({
  azd: {
    type: 'generate'
    config: {
      length: 10
      noNumeric: true
      noSpecial: true
    }
  }
})
param someInput string

违约

定义列表中要突出显示的初始值。 将其与 location 类型合并,或直接将其应用到具有定义的选项列表的输入:

@allowed(['foo', 'bar', 'baz'])
@metadata({
  azd: {
    default: 'baz'
  }
})
param someInput string

此示例使用 Bicep 中的 @allowed() 注释来定义输入参数支持的值的列表。 当 azd 提示输入时,它使用允许的值列表。 default元数据中的字段控制将哪个选项设置为初始选择:

显示从允许值中进行提示时的默认设置的屏幕截图。

使用名称

字段 usageName 将位置列表筛选为仅提供给定 AI SKU 和容量的位置:

@metadata({
  azd: {
    type: 'location'
    usageName: [
      'OpenAI.GlobalStandard.gpt-5-mini,10'
    ]
  }
})
param someInput string

此示例 azd 仅显示 AI 模型 gpt-5-mini 有足够的配额(容量至少为 10)的 Azure 位置。

提示流:

显示将 usageName 设为以提示 AI 位置信息的屏幕截图。

注释

azd 如果没有具有足够配额的位置,则返回错误。