快速入门:使用 Visual Studio Code 创建 Bicep 文件
本快速入门逐步讲解使用 Visual Studio Code 创建 Bicep 文件的步骤。 你将创建一个存储帐户和一个虚拟网络。 你还将了解 Bicep 扩展如何通过提供类型安全性、语法验证和自动完成来简化开发。
Visual Studio 也支持类似的创作体验。 请参阅快速入门:使用 Visual Studio 创建 Bicep 文件。
先决条件
如果没有 Azure 订阅,可在开始前创建一个试用帐户。
若要设置环境以进行 Bicep 开发,请参阅安装 Bicep 工具。 完成这些步骤后,你将获得 Visual Studio Code 和 Bicep 扩展。 你还将具备最新的Azure CLI 或最新的 Azure PowerShell 模块。
添加资源代码片段
包含 Bicep 扩展的 VS Code 通过提供预定义的代码片段来简化开发。 在本快速入门中,你将添加用于创建虚拟网络的代码片段。
启动 Visual Studio Code 并创建名为 main.bicep 的新文件。
在 main.bicep 中,键入 vnet,从列表中选择 res-vnet,然后按 [TAB] 或 [ENTER]。
提示
如果在 VS Code 中没有看到这些 IntelliSense 选项,请确保已按照先决条件中的规定安装了 Bicep 扩展。 如果已安装该扩展,请在打开 Bicep 文件后给 Bicep 语言服务一些时间来启动。 它通常启动很快,但在启动之前不会提供 IntelliSense 选项。 右下角的通知指示服务正在启动。 当该通知消失时,服务正在运行。
Bicep 文件现在包含以下代码:
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2019-11-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'
}
}
]
}
}
在此代码片段中,可以找到定义虚拟网络所需的所有值。 你可能会注意到两个波浪下划线。 黄色波浪下划线表示与过时 API 版本相关的警告,而红色波浪下划线表示缺少参数定义导致的错误。
删除 @2019-11-01
,并将其替换为 @
。 选择最新的 API 版本。
在下一节中,你将修复缺少的参数定义错误。
可以根据自己的要求修改此代码。 例如,name
并不是很适合用作虚拟网络的名称。 将 name
属性更改为 examplevnet
。
name: 'exampleVNet'
添加参数
上一节中添加的代码片段缺少参数定义。
在文件的顶部,添加:
param location
在 location 后面添加空格时,可以发现 IntelliSense 提供了该参数可用的数据类型。 选择“string”。
为参数提供默认值:
param location string = resourceGroup().location
有关在默认值中使用的函数的详细信息,请参阅 resourceGroup()。
为具有默认值的存储帐户名称添加另一个参数:
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
有关详细信息,请参阅内插和 uniqueString()。
此参数可以正常工作,但存储帐户对名称的长度施加了限制。 该名称必须至少包含三个字符,并且不能超过 24 个字符。 可以通过为参数添加修饰器来指定这些要求。
在参数上方添加一行,然后键入 @。 你将看到可用的修饰器。 可以看到,minLength 和 maxLength 都有修饰器 。
添加修饰器并指定字符限制:
@minLength(3)
@maxLength(24)
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
还可以添加参数的说明。 请包含相应的信息,帮助部署 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 storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
你的参数可供使用。
添加资源
你将使用 IntelliSense 来设置值,而不是使用代码片段来定义存储帐户。 IntelliSense 使此步骤比手动键入值更容易。
若要定义资源,请使用关键字 resource
。 在虚拟网络下方,键入 resource exampleStorage:
resource exampleStorage
exampleStorage 是要部署的资源的符号名称。 可以使用此名称引用 Bicep 文件其他部分中的资源。
在该符号名称的后面添加空格时,会显示资源类型的列表。 不断键入 storageacc,直到可以从可用选项中选择它。
选择“Microsoft.Storage/storageAccounts”后,你将看到可用的 API 版本。 选择“最新版本”。 对于以下屏幕截图,为 2023-05-01。
在资源类型的单引号后面,添加 = 和一个空格。 你将看到用于为资源添加属性的选项。 选择“required-properties”。
此选项用于添加在部署时所需的所有资源类型属性。 选择此选项后,存储帐户具有以下属性:
resource exampleStorage 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name:
location:
sku: {
name:
}
kind:
}
即将完成。 只需为这些属性提供值。
同样,IntelliSense 可为你提供帮助。 将 name
设置为 storageAccountName
,这是包含存储帐户名称的参数。 对于 location
,将其设置为 location
,这是之前创建的参数。 添加 sku.name
和 kind
时,IntelliSense 会显示有效选项。
若要连同必需属性一起添加可选属性,请将光标放在所需位置,然后按 Ctrl+空格键。 IntelliSense 建议如以下屏幕截图所示添加未使用的属性:
完成后,你将获得:
@minLength(3)
@maxLength(24)
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
param location string = resourceGroup().location
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2024-01-01' = {
name: 'exampleVNet'
location: resourceGroup().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@2023-05-01' = {
name: storageAccountName
location: 'chinaeast'
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
}
有关 Bicep 语法的详细信息,请参阅 Bicep 结构。
可视化资源
可以查看文件中资源的表示形式。
在右上角,选择可视化工具按钮以打开 Bicep 可视化工具。
可视化工具显示 Bicep 文件中定义的资源以及资源依赖关系信息。 本快速入门中定义的两个资源不存在依赖关系,因此你在这两个资源之间看不到连接器。
部署 Bicep 文件
右键单击 VS Code 中的 Bicep 文件,然后选择“部署 Bicep 文件”。
在“请输入部署的名称”文本框中,键入 deployStorageAndVNet,然后按 [ENTER]。
在顶部的“选择资源组”列表框中,选择“创建新资源组”。
输入 exampleRG 作为资源组名称,然后按 [ENTER]。
选择资源组的位置,选择“中国东部”或所选位置,然后按 [Enter]。
在“选择参数文件”中,选择“无”。
创建资源需要花费片刻时间。 有关详细信息,请参阅使用 Visual Studio Code 部署 Bicep 文件。
可以使用 Azure CLI 或 Azure PowerShell 部署 Bicep 文件:
az group create --name exampleRG --location chinaeast
az deployment group create --resource-group exampleRG --template-file main.bicep --parameters storageAccountName=uniquename
部署完成后,应会看到一条指出部署成功的消息。
清理资源
如果不再需要本文中创建的 Azure 资源,请使用 Azure CLI 或 Azure PowerShell 模块删除快速入门资源组。
az group delete --name exampleRG