共用方式為


在 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"
-            }
-          }
-        ]
-      }
-    },

移除相依性子句

虛擬網路在部署範本之前就已存在,因此不需要指定從擴展集到虛擬網路的 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 擴展集

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