许多 Azure 部署需要部署和配置网络资源。 可以使用 Bicep 定义 Azure 网络资源。
通过创建具有类型 Microsoft.Network/virtualNetworks
的资源来定义虚拟网络。
虚拟网络包含子网,这些子网是网络中 IP 地址的逻辑分组。 子网应始终作为子资源进行管理,并且不应在虚拟网络资源中定义 子网 属性。 此方法可确保这两种资源类型的安全且独立的生命周期。
注意
Azure 虚拟网络 API 更新为允许修改虚拟网络,而无需在 PUT 请求中包含子网属性。 以前,省略子网属性将导致删除现有子网。 使用新行为时,如果 PUT 请求中不包含子网属性,则现有子网保持不变。 将子网属性显式设置为空值会删除所有现有子网,同时提供特定的子网配置会相应地创建或更新子网。 此更改通过防止更新期间意外删除子网来简化虚拟网络管理。
最好将子网定义为 子资源,如以下示例所示:
param location string = resourceGroup().location
var virtualNetworkName = 'my-vnet'
var subnet1Name = 'Subnet-1'
var subnet2Name = 'Subnet-2'
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2024-05-01' = {
name: virtualNetworkName
location: location
properties: {
addressSpace: {
addressPrefixes: [
'10.0.0.0/16'
]
}
}
resource subnet1 'subnets' = {
name: subnet1Name
properties: {
addressPrefix: '10.0.0.0/24'
} }
resource subnet2 'subnets' = {
name: subnet2Name
properties: {
addressPrefix: '10.0.1.0/24'
}
}
}
output subnet1ResourceId string = virtualNetwork::subnet1.id
output subnet2ResourceId string = virtualNetwork::subnet2.id
若要引用父资源外部的嵌套资源,必须使用包含的资源名称和 :: 运算符进行限定,如前面的示例所示。
网络安全组通常用于应用规则,控制来自子网或网络接口的流量的入站和出站流。 在 Bicep 文件中定义大量规则并在多个文件中共享它们可能会显得繁琐。 使用复杂或大型网络安全组时,请考虑使用 共享变量文件模式 。
专用终结点必须获得批准。 在某些情况下,审批会自动发生。 但另外一些情况下,你需要手动批准终结点,然后才能使用它。
专用终结点批准是一种操作,因此不能直接在 Bicep 代码中执行它。 但是,可以使用部署脚本来调用操作。 或者,你可以在 Bicep 文件外部调用操作,例如在管道脚本中。
快速入门模板
- 含有诊断日志的虚拟网络