在 Azure 擴展集範本中參考現有的虛擬網路

本文說明如何修改 基本擴展集範本 ,以部署到現有的虛擬網路,而不是建立新的虛擬網路。

必要條件

在先前的文章中,我們建立了 基本的擴展集範本。 您將需要先前的範本,讓您可以修改它來建立範本,以將擴展集部署至現有的虛擬網路。

識別子網

首先,新增 subnetId 參數。 這個字串會傳遞至擴展集組態,讓擴展集可識別要將虛擬機器部署到的預建子網路。 這個字串的格式必須是:

/subscriptions/<subscription-id>resourceGroups/<resource-group-name>/providers/Microsoft.Network/virtualNetworks/<virtual-network-name>/subnets/<subnet-name>

比方說,若要將擴展集部署到具有名稱 myvnet 、子網、資源群組和訂用帳戶的現有虛擬網路 mysubnet myrg 00000000-0000-0000-0000-000000000000 中,subnetId 會是:

/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myrg/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/mysubnet.

      },
      "adminPassword": {
        "type": "securestring"
+    },
+    "subnetId": {
+      "type": "string"
      }
    },

刪除額外的虛擬網路資源

接下來,從 resources 陣列刪除虛擬網路資源,因為您使用現有虛擬網路,因此不需要部署新的資源。

    "variables": {},
    "resources": [
-    {
-      "type": "Microsoft.Network/virtualNetworks",
-      "name": "myVnet",
-      "location": "[resourceGroup().location]",
-      "apiVersion": "2018-11-01",
-      "properties": {
-        "addressSpace": {
-          "addressPrefixes": [
-            "10.0.0.0/16"
-          ]
-        },
-        "subnets": [
-          {
-            "name": "mySubnet",
-            "properties": {
-              "addressPrefix": "10.0.0.0/16"
-            }
-          }
-        ]
-      }
-    },

Remove dependency 子句

虛擬網路已在部署範本之前即已存在,因此不需要指定 dependsOn 從擴展集到虛擬網路的子句。 刪除下列幾行:

      {
        "type": "Microsoft.Compute/virtualMachineScaleSets",
        "name": "myScaleSet",
        "location": "[resourceGroup().location]",
        "apiVersion": "2019-03-01",
-      "dependsOn": [
-        "Microsoft.Network/virtualNetworks/myVnet"
-      ],
        "sku": {
          "name": "Standard_A1",
          "capacity": 2

傳遞子網參數

最後,傳入 subnetId 使用者 (所設定的參數,而不是使用 resourceId 來取得相同部署中的 vnet 識別碼,這是基本的可行擴展集範本) 的。

                        "name": "myIpConfig",
                        "properties": {
                          "subnet": {
-                          "id": "[concat(resourceId('Microsoft.Network/virtualNetworks', 'myVnet'), '/subnets/mySubnet')]"
+                          "id": "[parameters('subnetId')]"
                          }
                        }
                      }

後續步驟

您可以依照 Azure Resource Manager 文件所述來部署上述範本。

本教學課程系列可從基本的擴展集範本文章開始。

您可了解如何修改基本的擴展集範本,以將擴展集部署至現有虛擬網路

您可了解如何修改基本的擴展集範本,以使用自訂映像部署擴展集

您可了解如何修改基本的擴展集範本,以使用來賓型自動調整來部署 Linux 擴展集

如需擴展集的詳細資訊,請參考擴展集概觀頁面