我需要将子网添加到另一个资源组中的VNET。我有一个arm模板(下面),它将一个子网添加到现有资源组,它工作正常,但我需要将该子网添加到另一个资源组中的VNET。
示例 - 有2个资源组 资源组A - 包含VNET 资源组B - 此处部署的VM但需要连接到资源组A中的VNET
当我将创建VM的模板部署到资源组B时,我需要从此ARM模板中引用资源组A,我该怎么做? 我目前正在通过Visual Studio进行部署,所以我使用右键单击然后部署到并选择将VM部署到的资源组,例如资源组B.以下代码可以工作,但它部署到错误的资源组,它应该将子网添加到VNET所在的资源组,但将其添加到正在部署VM的资源组中!
"vnetID": "[resourceId(parameters('ResourceGroupName'),'Microsoft.Network/virtualNetworks',parameters('existingVNETName'))]"
"apiVersion": "2015-06-15",
"type": "Microsoft.Network/virtualNetworks/subnets",
"name": "[concat(parameters('existingVNETName'), '/', parameters('newSubnetName'))]",
"location": "[resourceGroup().location]",
"properties": {
"addressPrefix": "[parameters('newSubnetAddressPrefix')]"
答案 0 :(得分:0)
答案 1 :(得分:0)
实际上可以做到。使用Azure资源浏览器我得到了我想要添加虚拟机的子网的ID。然后在构建NIC的资源(通常是“type”:“Microsoft.Network/networkInterfaces”)中,在子网属性下,您可以粘贴此ID。我正在努力进行参数化但是有效。 Azure资源管理器是我使用的工具
"name": "NIC",
"type": "Microsoft.Network/networkInterfaces",
"location": "[resourceGroup().location]",
"apiVersion": "2016-03-30",
"dependsOn": [
],
"tags": {
"displayName": "[variables('NicName')]"
},
"properties": {
"ipConfigurations": [
{
"name": "ipconfig1",
"properties": {
"privateIPAddress": "[parameters('primaryPrivateIPAddress')]",
"privateIPAllocationMethod": "Static",
"subnet": {
"id": ""/subscriptions/abcd123456789/resourceGroups/ResourceGroupA/providers/Microsoft.Network/virtualNetworks/ResourceGroupVirtualNetwork/subnets/newsubnet""
}
答案 2 :(得分:0)
无法将子网添加到另一个资源组中的VNET,因为子网不是Azure中的顶级资源。虚拟网络中的所有子网始终对应资源组中的虚拟网络资源。