将子网添加到另一个资源组

时间:2018-03-06 12:14:35

标签: azure networking

我需要将子网添加到另一个资源组中的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')]"

3 个答案:

答案 0 :(得分:0)

这是不可能的。 VNET中的子网是该VNET的属性,因此您无法在其他资源组中创建子网。

但是,您可以将用户添加到某个子网,因此只有某个用户才能将计算机添加到其“允许的”子网中。 Add users to subnet

答案 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中的顶级资源。虚拟网络中的所有子网始终对应资源组中的虚拟网络资源。