你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

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

本快速入门将指导你完成使用 Visual Studio 创建 Bicep 文件 的步骤。 你将创建一个存储帐户和一个虚拟网络。 你还将了解 Bicep 扩展如何通过提供类型安全性、语法验证和自动完成来简化开发。

Visual Studio Code 也支持类似的创作体验。 请参阅 快速入门:使用 Visual Studio Code 创建 Bicep 文件

先决条件

添加资源片段

启动 Visual Studio 并创建名为 main.bicep 的新文件。

使用 Bicep 扩展的 Visual Studio 通过提供预定义的代码片段简化了开发。 在本快速入门中,你将添加用于创建虚拟网络的代码片段。

main.bicep 中,键入 vnet。 从列表中选择 res-vnet ,然后按 [TAB][ENTER]

为虚拟网络添加代码片段的屏幕截图。

小窍门

如果在 Visual Studio 中看不到这些 Intellisense 选项,请确保已安装 先决条件中指定的 Bicep 扩展。 如果您已安装扩展,打开 Bicep 文件后,请为启动 Bicep 语言服务留一些时间。 它通常启动很快,但在启动之前不会提供 intellisense 选项。

Bicep 文件现在包含以下代码:

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2025-01-01' = {
  name: 'name'
  location: location
  properties: {
    addressSpace: {
      addressPrefixes: [
        '10.0.0.0/16'
      ]
    }
    subnets: [
      {
        name: 'Subnet-1'
        properties: {
          addressPrefix: '10.0.0.0/24'
        }
      }
      {
        name: 'Subnet-2'
        properties: {
          addressPrefix: '10.0.1.0/24'
        }
      }
    ]
  }
}

此代码片段包含定义虚拟网络所需的所有值。 但是,可以修改此代码以满足你的要求。 例如, name 不是虚拟网络的好名称。 将 name 属性更改为 exampleVnet.

name: 'exampleVnet'

注意 位置 具有红色大括号下划线。 这表示问题。 将光标悬停在位置上。 错误消息为 - 当前上下文中不存在名称“location”。 我们将在下一部分创建位置参数。

添加参数

现在,我们为存储帐户名称和位置添加两个参数。 在文件顶部,添加:

param storageName

storageName 之后添加空间时,请注意 Intellisense 提供可用于参数的数据类型。 选择 字符串

将字符串类型添加到参数的屏幕截图。

你有以下参数:

param storageName string

此参数正常工作,但存储帐户对名称长度有限制。 该名称必须至少有三个字符,且不超过 24 个字符。 可以通过向参数添加修饰器来指定这些要求。

在参数上方添加一行,然后键入 @。 你将看到可用的修饰器。 注意minLengthmaxLength都有修饰器。

将修饰器添加到参数的屏幕截图。

添加修饰器并指定字符限制,如下所示:

@minLength(3)
@maxLength(24)
param storageName string

还可以为参数添加说明。 请包含相应的信息,帮助部署 Bicep 文件的人员了解要提供哪个值。

@minLength(3)
@maxLength(24)
@description('Provide a name for the storage account. Use only lower case letters and numbers. The name must be unique across Azure.')
param storageName string

存储帐户名称参数可供使用。

添加另一个位置参数:

param location string = resourceGroup().location

添加资源

我们使用 Intellisense 来设置值,而不是使用代码片段来定义存储帐户。 Intellisense 使此步骤比手动键入值更容易。

若要定义资源,请使用 resource 关键字。 在虚拟网络下方键入 资源示例Storage

resource exampleStorage

exampleStorage 是要部署的资源的符号名称。 可以使用此名称引用 Bicep 文件其他部分中的资源。

在符号名称之后添加空格时,将显示资源类型的列表。 继续键入 存储 ,直到可以从可用选项中选择存储。

选择资源类型的存储帐户的屏幕截图。

选择 Microsoft.Storage/storageAccounts 后,会显示可用的 API 版本。 选择 2021-09-01 或最新的 API 版本。 建议使用最新的 API 版本。

选择资源类型的 API 版本的屏幕截图。

在资源类型的单引号后,添加 = 和一个空格。 你会看到用于向资源添加属性的选项。 选择 required-properties

添加所需属性的屏幕截图。

此选项添加部署所需的资源类型的所有属性。 选择此选项后,存储帐户具有以下属性:

resource exampleStorage 'Microsoft.Storage/storageAccounts@2025-06-01' = {
	name: 1
	location: 2
	sku: {
		name: 3
	}
	kind: 4
}

代码中有四个占位符。 使用 [TAB] 浏览它们并输入值。 同样,Intellisense 可帮助你。 将 name 设置为 storageName,这是包含存储帐户名称的参数。 对于 location,将其设置为 location。 添加 SKU 名称和类型时,Intellisense 会显示有效选项。

完成后,你已具备:

@minLength(3)
@maxLength(24)
@description('Provide a name for the storage account. Use only lower case letters and numbers. The name must be unique across Azure.')
param storageName string
param location string = resourceGroup().location

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2025-01-01' = {
  name: storageName
  location: location
  properties: {
    addressSpace: {
      addressPrefixes: [
        '10.0.0.0/16'
      ]
    }
    subnets: [
      {
        name: 'Subnet-1'
        properties: {
          addressPrefix: '10.0.0.0/24'
        }
      }
      {
        name: 'Subnet-2'
        properties: {
          addressPrefix: '10.0.1.0/24'
        }
      }
    ]
  }
}

resource exampleStorage 'Microsoft.Storage/storageAccounts@2025-06-01' = {
  name: storageName
  location: location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}

有关 Bicep 语法的详细信息,请参阅 Bicep 结构

部署 Bicep 文件

尚无法从 Visual Studio 中完成 Bicep 文件的部署。 可以使用 Azure CLI 或 Azure PowerShell 部署 Bicep 文件:

az group create --name exampleRG --location eastus

az deployment group create --resource-group exampleRG --template-file main.bicep --parameters storageName=uniquename

部署完成后,应会看到一条指出部署成功的消息。

清理资源

不再需要 Azure 资源时,请使用 Azure CLI 或 Azure PowerShell 模块删除快速入门资源组。

az group delete --name exampleRG

后续步骤