你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:使用 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 扩展的 Visual Studio Code 通过提供预定义的代码片段来简化开发。 在本快速入门中,你将添加用于创建虚拟网络的代码片段。
启动 Visual Studio Code 并创建名为 main.bicep 的新文件。 在 main.bicep 中,键入 vnet,从列表中选择 res-vnet,然后按 Tab 或 Enter。
提示
如果未在 Visual Studio 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 版本相关的警告,而红色波浪下划线表示缺少参数定义导致的错误。 Bicep Linter 会检查 Bicep 文件是否存在语法错误以及是否违反最佳做法。 将光标悬停在 @2019-11-01
上,弹出窗格显示“为 'Microsoft.Network/virtualNetworks' 使用更新的 API 版本”。 从弹出窗格中选择“快速修复”,然后选择“替换为 2024-05-01”以更新 API 版本。
或者,移除 @2019-11-01
,并将其替换为 @
。 选择最新的 API 版本。
在下一节中,你将修复缺少的参数定义错误。
可以根据自己的要求修改此代码。 例如,由于 name
不是虚拟网络的明确名称,因此可以将 name
属性更改为 exampleVnet
:
name: 'exampleVNet'
添加参数
你在最后一节中添加的代码片段缺少参数定义 location
,由红色波浪下划线指出。 在文件的顶部,添加:
param location
在 location 后面添加空格时,可以发现 IntelliSense 提供了该参数可用的数据类型。 选择“string”。
为参数提供默认值:
param location string = resourceGroup().location
前一行将资源组的位置分配给虚拟网络资源。 有关在默认值中使用的函数的详细信息,请参阅 resourceGroup()
。
在文件顶部,为存储帐户名(稍后在快速入门中创建)添加另一个参数,并设置默认值:
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
有关详细信息,请参阅内插和 uniqueString()
。
此参数可以正常工作,但存储帐户对名称的长度施加了限制。 该名称必须至少包含 3 个字符,并且不能超过 24 个字符。 可以通过为参数添加修饰器来指定这些要求。
在参数上方添加一行,然后键入 @。 你将看到可用的修饰器。 请注意,minLength 和 maxLength 都有修饰器。
添加这两个修饰器并指定字符限制(例如下面的 3 和 24):
@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 lowercase letters and numbers. The name must be unique across Azure.')
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
你的参数可供使用。
添加资源
你将使用 IntelliSense 来设置值,而不是使用代码片段来定义存储帐户。 IntelliSense 使此步骤比手动键入值更容易。
若要定义资源,请使用关键字 resource
。 在虚拟网络下方,键入 resource storageAccount:
resource storageAccount
storageAccount 是你要部署的资源的符号名称。 可以使用此名称引用 Bicep 文件其他部分中的资源。
在该符号名称的后面添加空格时,会显示资源类型的列表。 不断键入 storageacc,直到可以从可用选项中选择它。
选择“Microsoft.Storage/storageAccounts”后,你将看到可用的 API 版本。 选择“最新版本”。 对于以下屏幕截图,为 2023-05-01。
在资源类型的单引号后面,添加 = 和一个空格。 你将看到用于为资源添加属性的选项。 选择“required-properties”。
此选项用于添加在部署时所需的所有资源类型属性。 选择此选项后,存储帐户具有以下属性:
resource storageAccount '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)
@description('Provide a name for the storage account. Use only lowercase letters and numbers. The name must be unique across Azure.')
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
param location string = resourceGroup().location
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2024-05-01' = {
name: 'exampleVNet'
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 storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: storageAccountName
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
}
有关 Bicep 语法的详细信息,请参阅 Bicep 文件结构和语法。
可视化资源
Bicep 可视化工具显示文件中资源的图形表示形式。
在右上角选择 Bicep 可视化工具按钮以打开该工具:
此可视化工具显示 Bicep 文件中定义的资源及其依赖关系之间的连接器。 本快速入门中定义的两个资源不存在依赖关系,因此它们之间没有连接器:
部署 Bicep 文件
右键单击 Visual Studio Code 中的 Bicep 文件,然后选择“部署 Bicep 文件”。
在“请输入部署的名称”文本框中,键入 deployStorageAndVNet,然后按 ENTER。
在顶部的“选择资源组”列表框中,选择“创建新资源组”。
输入 exampleRG 作为资源组名称,然后按 ENTER。
选择资源组的位置,选择“美国中部”或你选定的位置,然后按 ENTER。
在“选择参数文件”中,选择“无”。
创建资源需要花费片刻时间。 有关详细信息,请参阅使用 Visual Studio Code 部署 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 storageAccountName=uniquename
部署完成后,应会看到一条消息,表明部署成功。
清理资源
如果不再需要本文中创建的 Azure 资源,请使用 Azure CLI 或 Azure PowerShell 模块删除快速入门资源组。
az group delete --name exampleRG
后续步骤
浏览了解 Bicep 模块。