您需要在Azure中构建基础设施吗?您是否看过ARM模板并觉得它们很复杂?因为很多人抱怨构建ARM模板的难度,微软开发了一个称为Azure Bicep的抽象层。
在本教程中,您将学习如何从零开始。您将学会从设置开发环境到部署您的第一个Bicep模板的所有操作!
让我们开始吧!
先决条件
本教程将进行实践演示。如果您想跟着做,请确保您具备以下条件:
- Windows 10 – 本教程中的大多数演示将在其他操作系统上工作,但所有演示都将使用Windows 10。
- Visual Studio Code – 本教程将使用v1.60.2。
- 要部署到的Azure资源组 – 本教程将使用名为ATA的资源组。
什么是Azure Bicep?
Bicep是一种领域特定语言,可简化构建ARM模板的过程。您可以将Bicep视为在ARM模板之上的抽象层。ARM使用JSON并且可能在大规模部署中变得复杂。
Microsoft决定创建Bicep以减少复杂性并提高开发体验。这不是一种全新的语言;将其看作是对JSON ARM模板的改进。
建立Bicep开发环境
要开始开发Bicep模板,您需要建立一个能够帮助您获得最佳结果的环境。为此,您可以使用一些工具。让我们首先设置您需要的环境,包括VS Code Bicep扩展、Bicep CLI以及可选的Azure PowerShell模块。
安装VS Code Bicep扩展
VS Code 是一个很棒的开发工具,用于构建 Bicep 模板。因此,微软提供了一个 VS Code 扩展来帮助简化创建 Bicep 模板的过程。让我们通过准备 VS Code 来开始构建开发环境。
打开 Visual Studio Code 并点击扩展按钮。

在搜索栏中键入“bicep”。你应该会看到一个Bicep扩展出现。当这种情况发生时,点击安装。几秒钟后,VS Code 将安装 Bicep 扩展。

即使下一节将提供 Bicep 模板供您复制/粘贴,但您肯定会有需要从头创建 Bicep 模板的时候。特别是由于其智能感知功能,VS Code 中的 Bicep 扩展在这里非常方便。
请注意,如果您在 VS Code 中打开一个扩展名为.bicep的文件,VS Code 将会尝试为您提供快捷方式。例如,在 Bicep 模板中使用resource
关键字创建 Azure 资源。安装了 Bicep 扩展后,VS Code 能够理解这一点。

选择提供的菜单选项之一,然后自动创建一个模板以填写,而不必每次都记住确切的语法。

句号( .
)是创建 Bicep 模板时的另一个方便的快捷键。例如,在属性部分键入这个,您将看到适用于存储账户的所有属性。

安装 Bicep CLI
创建后,必须通过 Bicep CLI 调用 Bicep 模板。在尝试安装 Bicep CLI 之前,请首先检查是否已安装。根据已安装的 Azure CLI 版本,您可能已经安装了 Bicep CLI。要检查,请打开 PowerShell 控制台或终端,并检查 Bicep CLI 的版本。
如果已安装了 Bicep CLI,则会看到版本说明,如下所示。

如果看到关于找不到 Bicep CLI 的错误消息,请运行install
子命令安装 Bicep CLI。
现在您将看到以下输出。它确认 Bicep CLI 已成功安装并准备好使用。

作为备用安装方法,您还可以通过Bicep Windows 安装程序安装 Bicep CLI。
创建一个 Bicep 模板以部署存储账户
您可以使用 Bicep 部署一些复杂的 Azure 资源,但让我们从简单的开始。对于您的第一个 Bicep 模板,让我们创建一个简单的 Azure 存储账户,然后您可以在下一节中使用 Azure CLI 和 PowerShell 部署到 Azure。
1. 打开 VS Code 并创建一个名为 main.bicep 的新文件。您不必像这里显示的那样准确命名文件,但按照 Terraform 的做法,将模板命名为 main 并使用 .bicep 扩展名是常见的。
2. 复制并粘贴下面的 Bicep 模板代码到文件中并保存。此模板包含组成 Bicep 模板的各种属性。
您将首先看到一些适用于所有 Bicep 模板的属性:
- 资源标识符(
resource myStorage
)- 告诉 Bicep 创建一个名为myStorage
的新资源。此名称标识 Bicep 模板中的特定资源。此名称不是在 Azure 中创建的资源的名称。 Microsoft.Storage/storageAccounts@2019-06-01
– 定义了一个由资源提供程序Microsoft.Storage
、资源类型(storageAccounts
)和要使用的 API 版本(2019-06-01)
组成的类型。name
– 资源在 Azure 中显示的名称(注意命名 Azure 资源的规则和限制。)location
– 要在其中创建资源的 Azure 区域。
你还将看到一些特定于 storageAccounts
资源类型的属性:
SKU
– 存储账户的 SKU (Standard_LRS
) 如在属性name
中定义的。kind
– 存储账户的类型 (StorageV2)。properties
– 各种资源特定的属性,例如此示例中的accessTier
,这些属性与 ARM 模板 中找到的属性相同。
使用 PowerShell 部署 Bicep 模板
如前所述,您可以通过 Azure CLI 和 Azure PowerShell 模块之一部署 Bicep 模板。让我们首先使用 PowerShell 部署 Bicep 模板。
确保在开始本节之前已安装 Azure PowerShell 模块 并已 对 Azure 进行了身份验证。
部署 Azure 资源使用 Bicep 模板与部署 ARM 模板相同。Microsoft 实际上已经为许多现有的 PowerShell ARM cmdlet(例如 New-AzResourceGroupDeployment.
)添加了对 Bicep 语言的支持。
在 PowerShell 控制台中,通过 New-AzResourceGroupDeployment
cmdlet 调用新的资源组部署,提供 Bicep 模板的路径和要部署到的 ResourceGroupName
。您会注意到,您可以像使用 ARM 模板一样使用 Bicep 模板。
如果部署成功,您应该在 PowerShell 会话中看到以下输出,其中属性 ProvisioningState 显示为成功。就是这样!

要验证资源是否成功创建,请登录到 Azure 门户,导航到您的资源组,然后在该资源组内看到一个新创建的存储帐户。

如果您在跟进并创建存储帐户作为演示,请不要忘记将其删除!注意 ResourceName
与 Bicep 模板中提供的 name
相符。
现在,您将看到以下输出。

使用 Azure CLI 部署 Bicep 模板
为了完成本教程,现在让我们讨论使用 Azure CLI 部署您最近构建的 Bicep 模板。
在 PowerShell 或另一个终端中打开,使用 az deployment group create
命令调用 ARM 部署。此命令执行与 PowerShell 类似的 ARM 部署。确保通过 template-file
参数指定要部署到的 resource-group
,并使用之前创建的 Bicep 模板。
如果看到 provisioningState 显示为 Succeeded,如下所示,说明 ARM 已读取 Bicep 模板并执行了其中的所有指令!


不要忘记使用
az resource delete -g ATA -n ata2021bicepdiskstorage --resource-type "Microsoft.Storage/storageAccounts"
清理资源
结论
现在你已经为 Azure Bicep 创建了一个开发环境,并在 Azure 中创建了一个资源,接下来你的下一步是什么?也许可以看看 Microsoft Learn 提供的关于 Bicep 的内容?
也许向同事演示一下 Bicep 如何帮助你的组织?