共用方式為

使用和不使用 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 部署使用的标准参数值,例如默认区域、命名约定或全局标记。 使用 none 的 Bicep 参数文件可以充当这些共享值的中央存储,从而提高一致性并最大程度地减少重复。 然后,可以在部署时以编程方式将这些参数与模板特定的值合并。

    例如,共享的 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 环境