Azure Bicep
有关 Bicep 语言的所有信息,请参阅 Bicep 文档。
什么是 Bicep?
Bicep 是一种基础设施即代码 (IaC) 编程语言,使用声明式语法来部署 Azure 资源。在 Bicep 文件中,你定义要部署到 Azure 的基础设施,然后在整个开发生命周期中使用该文件反复部署该基础设施。你的资源将以一致的方式部署。
有关该语言以及使用 Bicep 的优势的更多信息,请参阅 什么是 Bicep 文档。
开始使用 Bicep
要开始使用 Bicep:
- 安装工具。
- 完成 Bicep 基础学习路径。
- 查看 Bicep 学习模块 的完整列表。
[!TIP] 如果你是 Bicep 的新手,请从安装 Bicep VS Code 扩展并部署一个简单的资源(例如存储帐户)开始,以便在转向更大的模板之前熟悉端到端的工作流程。
如果你有一个现有的 Azure Resource Manager (ARM) 模板或一组 Azure 资源,想要将其转换为 .bicep 格式,请参阅 将资源迁移到 Bicep 的推荐工作流 和 反编译 ARM 模板。
此外,还有一个丰富的 Azure Verified Modules 中的 Bicep 模块 库以及 azure-quickstart-templates 仓库中的示例,可帮助你入门。你还可以使用 Bicep Playground 在浏览器中试用 Bicep。
如果您正在寻找生产就绪且经过测试的 Bicep 模板,您可以在 bicep-registry-modules 仓库中找到它们。在 Azure Verified Modules 网站上了解有关这些模板的更多信息:https://aka.ms/avm。
Bicep 是如何工作的?
首先,使用作为 Bicep VS Code 扩展 一部分的 Bicep 语言服务来编写您的 Bicep 代码。
Azure CLI (2.20.0+) 和 PowerShell Az 模块 (v5.6.0+) 均内置了 Bicep 支持。这意味着您可以使用标准部署命令来处理您的 *.bicep 文件。工具会将代码转译并代表您将其发送到 ARM。例如,要将 main.bicep 部署到资源组 my-rg,请使用以下 CLI 命令:
az deployment group create -f ./main.bicep -g my-rg
目标
- 构建尽可能优秀的语言,用于描述、验证和部署 Azure 基础设施。
- 该语言应为底层平台提供透明的抽象。启用新资源类型或 API 版本的 Bicep 支持时,不得存在任何“入门步骤”。
- 代码应一目了然,易于理解,且无论您是否有其他编程语言的编程经验,都易于学习。
- 用户应拥有高度的自由度来模块化和重用其代码。代码重用不应需要任何“复制/粘贴”操作。
- 工具应提供高水平的资源可发现性和验证能力。应将其与编译器一起开发,而不是在最后阶段添加。
- 在部署之前,用户应对其代码的“语法有效性”有高度的信心。
非目标
- 构建满足任何需求的通用语言。该语言不取代通用语言。您可能仍需要在脚本或高级编程语言中执行 Bicep 执行前后的任务。
- 为与 Azure 无关的任务提供一等公民的提供程序模型。虽然扩展模型支持Microsoft Graph,但官方扩展点旨在专注于与 Azure 基础设施或应用程序部署相关的任务。
常见问题
使用 Bicep 能获得哪些独特优势?
- 支持 Day 0 资源提供程序。您可以使用 Bicep 部署任何 ARM 资源,无论其处于私有预览、公开预览还是 GA 阶段。
- 与等效的 ARM 模板 JSON 相比,语法更简单。
- 无需管理状态或状态文件。所有状态都存储在 Azure 中,因此可以轻松地协作并自信地对资源进行更改。
- 工具是获得任何编程语言卓越体验的基石。Bicep 的 VS Code 扩展使编写代码和基于所有 Azure 资源类型的API 定义进行高级类型验证变得极其简单。
- 使用原生模块轻松拆分代码。
- 由 Microsoft 支持,且 100% 免费使用。
获取帮助,报告问题
Bicep 团队在此帮助您成功使用 Bicep。请随时联系我们。
您可以在我们的 GitHub 项目中查看问题的状态。
社区通话
Bicep 团队为 Bicep 用户举办开放的社区通话。前往此处获取邀请,并关注带有标签的问题以获取更新。
您可以在Azure 部署与治理 YouTube 频道上找到社区通话的录像。
社交媒体
您也可以在以下社交媒体平台上找到我们:
您还可以通过社区创建的 LinkedIn 上的 Azure Bicep 用户组 与其他用户取得联系。
参考
社区 Bicep 项目
替代方案
由于 ARM Template 现在被视为一种 IL,因此预期并鼓励其他 IL (ARM Template) 生成实现。此列表提供了创建 ARM 模板的替代方案,这些方案可能更适合您的使用场景。
- Farmer (@isaacabraham) - 在 .NET 上生成和部署 ARM Templates
- Cloud Maker (@cloud-maker-ai) - 绘制可部署的基础设施图表,并将其转换为 ARM 模板或 Bicep
遥测
当您使用 Bicep VS Code 扩展时,VS Code 会收集使用数据并将其发送到 Microsoft,以帮助改进我们的产品和服务。阅读 隐私声明 以了解更多信息。如果您不想将使用数据发送到 Microsoft,请将 telemetry.enableTelemetry 设置设为 false。有关更多信息,请参阅 FAQ。
许可证
仓库中的所有文件,除了 Azure Architecture SVG 图标(此处 和 此处),均受 MIT 许可证 约束。
Bicep VS Code 扩展中使用的 Azure 架构 SVG 图标(此处 和 此处)受使用条款约束。
贡献
有关构建和运行代码、贡献代码、贡献示例以及贡献功能请求或错误报告的信息,请参阅为 Bicep 做贡献。