如何使用ARM或Azure CLI将现有虚拟网络连接到DevTest Lab
解决方案
完全可以自动化完成VNet和DevTest Lab的绑定操作,以下是两种适配你现有技术栈的实现方式:
方式1:直接用Bicep实现(推荐,适配你现有IaC流程)
绑定VNet本质是在DevTest Lab资源下创建Microsoft.DevTestLab/labs/virtualNetworks子资源,不需要修改你现有的VNet和DevTest Lab的基础模板,新增如下Bicep代码即可:
// 引用已存在的DevTest Lab resource lab 'Microsoft.DevTestLab/labs@2018-09-15' existing = { name: '<你的DevTest Lab名称>' scope: resourceGroup('<你的资源组名称>') } // 引用已存在的VNet resource vnet 'Microsoft.Network/virtualNetworks@2021-02-01' existing = { name: '<你的VNet名称>' scope: resourceGroup('<你的资源组名称>') } // 创建Lab和VNet的绑定关系 resource labVnet 'Microsoft.DevTestLab/labs/virtualNetworks@2018-09-15' = { parent: lab name: '<绑定后的显示名称,可和VNet同名>' properties: { externalProviderResourceId: vnet.id subnetOverrides: [ // 按需配置子网规则,默认继承VNet子网配置可以留空,或者指定对应子网 { name: '<VNet对应子网名称>' useInVmCreationPermission: 'Allow' usePublicIpAddressPermission: 'Allow' // 按需调整为Deny } ] } }
把这段代码加入你的现有Bicep部署流程,运行后即可自动完成绑定。
方式2:通过Azure CLI实现
如果你需要单独在流水线中用CLI执行绑定操作,先确保安装DevTest Labs CLI扩展,再执行创建命令即可:
- 安装扩展:
az extension add --name devtestlabs - 执行绑定命令:
az lab vnet create \ --lab-name <你的DevTest Lab名称> \ --name <绑定后的VNet显示名称> \ --resource-group <你的资源组名称> \ --vnet-id <VNet的完整资源ID>
如果需要配置子网权限,可追加--subnet-overrides参数指定子网规则。
流水线集成说明
两种方式都可以直接嵌入你的Azure DevOps流水线:
- Bicep方式直接和你现有Bicep模板一起走
az deployment group create命令部署即可 - CLI方式直接在Azure CLI任务中运行上述命令即可,无需手动操作门户
内容的提问来源于stack exchange,提问作者A7med
相关产品推荐
相关产品推荐

