使用和不使用 none 语句

所有 Bicep 参数文件都必须包含 usingusing none 声明。

Bicep参数文件通常使用using语句将文件链接到Bicep文件JSON Azure 资源管理器 模板(ARM 模板)Bicep模块模板规格。通过此链接,Bicep语言服务器和编译器可以根据模板的输入检查正确的名称、类型和所需值来验证参数文件。

相反,该 using none 语句显式指示参数文件在编译时未链接到任何特定模板。 此语句意味着不会根据特定模板验证参数,而是用于更常规的使用,例如外部工具使用或用作共享可重用参数集。

注意

Bicep 参数文件仅在 Bicep CLI 0.18.4 或更高版本、Azure CLI 2.47.0 或更高版本和 Azure PowerShell 9.7.1 或更高版本中受支持。 using none Bicep CLI 0.31.0 或更高版本支持此功能。

若要将语句与 JSON ARM 模板、Bicep 模块和模板规格配合使用,需要具有 Bicep CLI 0.22.6 或更高版本和 Azure CLI 2.53.0 或更高版本。

using 语句

using 语句的语法:

  • 若要使用 Bicep 文件,请执行以下操作:

    using '<path>/<file-name>.bicep'
    
  • 若要使用 JSON ARM 模板,请执行以下操作:

    using '<path>/<file-name>.json'
    
  • 若要使用公共模块

    using 'br/public:<file-path>:<tag>'
    

    例如:

    using 'br/public:avm/res/storage/storage-account:0.9.0' 
    
    param name = 'mystorage'
    
  • 若要使用专用模块,请执行以下操作:

    using 'br:<acr-name>.azurecr.io/bicep/<file-path>:<tag>'
    

    例如:

    using 'br:myacr.azurecr.io/bicep/modules/storage:v1'
    

    若要将专用模块与 bicepconfig.json 文件中定义的别名一起使用,请执行以下操作:

    using 'br/<alias>:<file>:<tag>'
    

    例如:

    using 'br/storageModule:storage:v1'
    
  • 若要使用模板规格,请执行以下操作:

    using 'ts:<subscription-id>/<resource-group-name>/<template-spec-name>:<tag>
    

    例如:

    using 'ts:00000000-0000-0000-0000-000000000000/myResourceGroup/storageSpec:1.0'
    

    若要将模板规格与 bicepconfig.json 文件中定义的别名一起使用,请执行以下操作:

    using 'ts/<alias>:<template-spec-name>:<tag>'
    

    例如:

    using 'ts/myStorage:storageSpec:1.0'
    

using none 语句

using none Bicep 参数文件 (.bicepparam) 中的语句指示在创作或编译期间,该文件未绑定到特定的 Bicep 模板。 此语句将参数文件与特定模板分离,从而在跨部署定义和使用参数方面具有更大的灵活性。

using none 语句的语法:

using none

将此语句放在Bicep参数文件的开头,以指示未引用任何特定模板。

Bicep 的主要优势 using none 在于参数文件通用化、共享或与模板动态集成的情况。 常见用例包括:

  • 集中式参数存储库

    组织通常维护跨多个Bicep部署使用的标准参数值,例如默认区域、命名约定或全局标记。 Bicepusing none参数文件可以充当这些共享值的中央存储,提高一致性并最大程度地减少重复。 可以在部署时以编程方式将这些参数与模板特定的值合并。

    例如,共享的 Bicep 参数文件可能定义:

    using none
    
    param location = 'chinanorth3'
    param environmentTag = 'production'
    param projectName = 'myApp'
    

    此外,还可以扩展此参数文件。 有关详细信息,请参阅 扩展参数文件

  • 动态生成和运行时集成

    在 CI/CD 管道或自动化脚本中,可以实时创建参数文件,或在运行时将其与模板相关联。 通过省略固定模板引用, using none 可让这些文件保持灵活且适应不同的部署上下文。

在Bicep参数文件中指定using none时,编译器不会根据特定的Bicep模板验证参数。 这意味着由于缺少链接模板,编译器不会针对不匹配的名称或类型引发任何编译时警告或错误。 但是,这种分离仅适用于创作和编译期间。 在部署时,Azure 资源管理器(ARM)仍需要Bicep模板和参数文件。 ARM 引擎通过在部署期间根据目标模板中定义的参数解析文件中的参数来执行验证。

后续步骤

  • 若要了解 Bicep 参数文件,请参阅为 Bicep 部署创建参数文件
  • 若要了解如何在 bicepconfig.json 文件中配置别名,请参阅配置 Bicep 环境