此文章說明如何修改基本的擴展集範本以部署至現有虛擬網路,而非建立新的虛擬網路。
必要條件
在上一篇文章中,我們建立了基本的擴展集範本。 您需要那個先前的範本,讓您可以加以修改來建立能將擴展集部署至現有虛擬網路的範本。
識別子網路
首先,新增 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 擴展集。
如需擴展集的詳細資訊,請參考擴展集概觀頁面。