你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
什么是 Bicep?
Bicep 是一种特定于域的语言,它使用声明性语法来部署 Azure 资源。 在 Bicep 文件中,定义要部署到 Azure 的基础结构,然后在整个开发生命周期中使用该文件重复部署基础结构。 你的资源以一致的方式部署。
Bicep 提供简洁的语法、可靠的类型安全,并支持重复使用代码。 Bicep 会针对你的 Azure 基础结构即代码解决方案提供一流创作体验。
Bicep 的优点
Bicep 具有下列优势:
支持所有资源类型和 API 版本:Bicep 直接支持 Azure 服务的所有预览版本和正式发布版本。 在资源提供程序引入新的资源类型和 API 版本后,即可在 Bicep 文件中使用它们。 无需等待工具完成更新即可使用新服务。
简单的语法:与等效的 JSON 模板相比,Bicep 文件更简洁且更易于阅读。 Bicep 不需要事先了解编程语言。 Bicep 语法是声明性的,可指定要部署的资源和资源属性。
以下示例显示了 Bicep 文件和等效 JSON 模板的区别。 这两个示例都部署了一个存储帐户:
param location string = resourceGroup().location param storageAccountName string = 'toylaunch${uniqueString(resourceGroup().id)}' resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = { name: storageAccountName location: location sku: { name: 'Standard_LRS' } kind: 'StorageV2' properties: { accessTier: 'Hot' } }
创作体验:使用 VS Code 的 Bicep 扩展创建 Bicep 文件时,可获得一流的创作体验。 该编辑器提供了针对丰富类型的安全性、IntelliSense 和语法验证。
还可以使用 Visual Studio 的 Bicep 扩展在 Visual Studio 中创建 Bicep 文件。
可重复的结果:在开发生命周期内部署基础结构,并确保以一致的方式部署资源。 Bicep 文件是幂等的,这意味着,可以多次部署同一文件,并获得处于相同状态的相同资源类型。 可以开发一个文件来表示所需的状态,而不是开发大量的独立文件来表示更新。 例如,以下文件创建存储帐户。 如果在指定属性已存在的情况下部署此模板和存储帐户,则不会进行更改:
业务流程:无需担心有序操作的复杂性。 资源管理器会协调相互依赖的资源的部署,以按正确的顺序创建这些资源。 如果可能,资源管理器会并行部署资源,这有助于您的部署比串行部署更快地完成。 通过一个命令部署文件,而无需使用多个强制性命令。
模块化:使用模块将 Bicep 代码分解为可管理的部分。 模块可帮助您重复使用代码并简化开发。 模块会部署一组相关资源。 需要部署这些资源时,将模块添加到 Bicep 文件。
与 Azure 服务的集成:Bicep 可与 Azure 服务(如 Azure Policy、模板规格和蓝图)集成。
预览更改:可以使用 what-if 操作在部署 Bicep 文件前预览更改。 通过 what-if 操作,可以看到要创建、更新或删除的资源,以及要更改的任何资源属性。 它会检查环境的当前状态,因此无需管理此状态。
没有要管理的状态或状态文件:所有状态均存储在 Azure 中。 你可以与他人协作,并确保你的更新按预期得到处理。
无成本且开放源代码:由于 Bicep 是免费的,因此无需为高级功能付费。 Microsoft 支持人员可提供相关支持。
开始使用
若要开始使用 Bicep,请执行以下操作:
- 安装工具。 有关详细信息,请参阅设置 Bicep 开发和部署环境,或使用 VS Code devcontainer/Codespaces 存储库获取预配置的创作环境。
- 完成快速入门和有关 Bicep 的 Learn 模块。
若要将现有资源管理器模板反向编译为 Bicep,请参阅将 ARM 模板 JSON 反向编译为 Bicep。 可使用 Bicep Playground 并排查看 Bicep 和其等效的 JSON。
若要了解 Bicep 文件中可用的资源,请参阅 Bicep 资源参考。
你可以在 Bicep GitHub 存储库中找到 Bicep 示例。
关于语言
Bicep 不是用于编写应用程序的常规编程语言。 Bicep 文件声明 Azure 资源和资源属性,而不编写用于创建资源的编程命令序列。
若要跟踪 Bicep 工作的状态,请参阅 Bicep 项目存储库。
若要了解 Bicep,请观看以下视频:
可以使用 Bicep 而非 JSON 来开发资源管理器模板。 用于创建资源管理器模板的 JSON 语法可能比较繁琐,并需要复杂的表达式。 Bicep 语法降低了这种复杂性,改进了开发体验。 Bicep 是基于资源管理器 JSON 模板的透明抽象,不会丢失 JSON 模板功能。 在部署期间,Bicep CLI 将 Bicep 文件转换为资源管理器 JSON 模板。
资源管理器模板中有效的资源类型、API 版本和属性在 Bicep 文件中也有效。
与其等效的 JSON 相比,Bicep 提供了更简单且更简洁的语法。 不使用括号表达式 [...]
。 而是可以直接调用函数,并从参数和变量获取值。 你将为每个已部署的资源指定一个符号名称,这样就可以轻松地在模板中引用该资源。
有关语法的完整比较,请参阅比较模板的 JSON 和 Bicep。
Bicep 自动管理资源之间的依赖关系。 当在其他资源声明中使用了某个资源的符号名称时,你不需要设置 dependsOn
。
Bicep 文件的结构比 JSON 模板更灵活。 可以在文件中的任意位置声明参数、变量和输出。 在 JSON 中,你必须在模板的相应部分声明所有参数、变量和输出。
获取支持
下面是针对 Azure 资源管理器 (ARM) 模板相关问题开具支持工单的步骤:
打开 Azure 门户。
选择右上角的“支持 + 故障排除”图标。
在“简要描述问题”中输入“ARM 模板”,然后选择“转到”。
在“哪个服务出现问题?”中,选择“监视和管理”下的“门户”,然后选择“下一步”。
选择一个订阅,然后选择“下一步”。
选择“ARM 模板问题”,然后选择“下一步”。
后续步骤
若要开始使用,请参阅快速入门。
有关常见问题的解答,请参阅有关 Bicep 的常见问题解答。