使用 Visual Studio Code 创建 Bicep 文件

本文介绍如何使用 Visual Studio Code 创建 Bicep 文件。

安装 VS Code

若要设置环境以进行 Bicep 开发,请参阅安装 Bicep 工具。 完成这些步骤后,你将具备 Visual Studio CodeBicep 扩展。 你还将具备最新的Azure CLI 或最新的 Azure PowerShell 模块

Bicep 命令

Visual Studio Code 随附了多个 Bicep 命令。

在 VS Code 中打开或创建 Bicep 文件,选择“视图”菜单,然后选择“命令面板”。 你也可以使用 F1 或组合键 Ctrl+Shift+P 调出命令面板。 键入 Bicep 以列出 Bicep 命令。

命令面板中 Visual Studio Code Bicep 命令的屏幕截图。

这些命令包括:

右键单击 Bicep 文件时,这些命令也会显示在上下文菜单中:

Bicep 文件的上下文菜单中 Visual Studio Code Bicep 命令的屏幕截图。

右键单击 JSON 文件时:

ARM JSON 模板的上下文菜单中 Visual Studio Code Bicep 命令的屏幕截图。

生成 ARM 模板

build 命令将 Bicep 文件转换为 Azure 资源管理器模板(ARM 模板)。 新的 JSON 模板存储在与文件同名的文件夹中。 如果存在同名的文件,将覆盖旧文件。 有关详细信息,请参阅 Bicep CLI 命令

创建 Bicep 配置文件

Bicep 配置文件 (bicepconfig.json)可用于自定义 Bicep 开发体验。 可在多个目录中添加 bicepconfig.json。 系统会使用目录层次结构中最接近 Bicep 文件的配置文件。 选择此命令时,扩展将打开一个对话框,供你选择文件夹。 默认文件夹是存储 Bicep 文件的位置。 如果该文件夹中已存在 bicepconfig.json 文件,则可以覆盖现有文件。

若要创建 Bicep 配置文件,请执行以下操作:

  1. 打开 Visual Studio Code。
  2. 从“视图”菜单中选择“命令面板”(或按 Ctrl/Cmd+Shift+P),然后选择“Bicep: 创建 Bicep 配置文件”。
  3. 选择要放置文件的文件目录。
  4. 完成后保存配置文件。

反编译为 Bicep

此命令将 ARM JSON 模板反编译为 Bicep 文件,并将其放置在 ARM JSON 模板所在的目录中。 新文件具有相同的文件名,扩展名为 .bicep。 如果同一文件夹中已存在具有相同文件名的 Bicep 文件,Visual Studio Code 会提示你覆盖现有文件或创建副本。

部署 Bicep 文件

可以直接从 Visual Studio Code 部署 Bicep 文件。 从命令面板或上下文菜单中选择“部署 Bicep 文件”。 扩展会提示你登录 Azure、选择订阅、创建/选择资源组,以及输入参数值。

注意

vscode 中的 Bicep deploy 命令使用 Azure 帐户扩展进行身份验证。 它不使用 bicepconfig.json 中的云配置文件。

生成参数文件

此命令在 Bicep 文件所在的同一文件夹中创建参数文件。 可以选择创建 Bicep 参数文件或 JSON 参数文件。 新的 Bicep 参数文件名为 <bicep-file-name>.bicepparam,而新的 JSON 参数文件名为 <bicep-file-name>.parameters.json

导入 Kubernetes 清单(预览版)

此命令会导入 Kubernetes 清单文件,并创建 Bicep 模块。 有关详细信息,请参阅 Bicep 扩展性 Kubernetes 提供程序快速入门:使用 Bicep Kubernetes 提供程序将 Azure 应用程序部署到 Azure Kubernetes 服务 (AKS) 群集(预览版)

插入资源

insert resource 命令通过提供现有资源的资源 ID 在 Bicep 文件中添加资源声明。 选择“插入资源”后,在命令面板中输入资源 ID。 插入资源需要花费一点时间。

可以使用以下方法之一找到资源 ID:


与导出模板类似,该过程会尝试创建可用的资源。 但是,插入的大多数资源需要经过一些修改才能用于部署 Azure 资源。

有关详细信息,请参阅将 ARM 模板 JSON 反编译为 Bicep

打开 Bicep 可视化工具

可视化工具显示 Bicep 文件中定义的资源以及资源依赖关系信息。 图中显示了 Linux 虚拟机 Bicep 文件的可视化效果。

Visual Studio Code Bicep 可视化工具

可以选择使用 Bicep 文件并行打开可视化工具。

还原 Bicep 模块

当 Bicep 文件使用已发布到注册表的模块时,还原命令会从注册表获取所有必需模块的副本。 该命令会将这些副本存储在本地缓存中。 有关详细信息,请参阅还原

查看类型文档

从 Visual Studio Code,可以轻松打开正在处理的资源类型的模板引用。 为此,请将光标悬停在资源符号名称上,然后选择“查看类型文档”

Visual Studio Code Bicep 查看类型文件的屏幕截图。

粘贴为 Bicep

你可以将 ARM 模板中的 JSON 代码片段粘贴到 Bicep 文件。 Visual Studio Code 自动将 JSON 反向编译为 Bicep。 此功能仅适用于 Bicep 扩展版本 0.14.0 或更新版本。 此功能默认启用。 若要禁用该功能,请参阅 VS Code 和 Bicep 扩展

使用此功能可以粘贴:

  • 完整的 ARM JSON 模板。
  • 单个资源或多个资源。
  • JSON 值,例如对象、数组和字符串。 带双引号的字符串转换为单引号。

例如,先打开以下 Bicep 文件:

@description('Storage Account type')
@allowed([
  'Standard_LRS'
  'Standard_GRS'
  'Standard_ZRS'
  'Premium_LRS'
])
param storageAccountsku string = 'Standard_LRS'

@description('Location for all resources.')
param location string = resourceGroup().location

var storageAccountName = '${uniqueString(resourceGroup().id)}storage'

resource storageAccount 'Microsoft.Storage/storageAccounts@2021-08-01' = {
  name: storageAccountName
  location: location
  sku: {
    name: storageAccountsku
  }
  kind: 'StorageV2'
  tags: {
    ObjectName: storageAccountName
  }
  properties: {}
}

output storageAccountName string = storageAccountName

然后,粘贴以下 JSON:

{
  "type": "Microsoft.Batch/batchAccounts",
  "apiVersion": "2021-06-01",
  "name": "[parameters('batchAccountName')]",
  "location": "[parameters('location')]",
  "tags": {
    "ObjectName": "[parameters('batchAccountName')]"
  },
  "properties": {
    "autoStorage": {
      "storageAccountId": "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]"
    }
  }
}

Visual Studio Code 自动将 JSON 转换为 Bicep。 请注意,你还需要添加名为 batchAccountName 的参数。

你可以使用 Ctrl+Z 取消反向编译。 初始 JSON 显示在文件中。

后续步骤

参阅快速入门:使用 Visual Studio Code 创建 Bicep 文件