Aggiungere un riferimento a una rete virtuale esistente in un modello di set di scalabilità di AzureAdd reference to an existing virtual network in an Azure scale set template

Questo articolo illustra come modificare il modello di set di scalabilità minimo valido per eseguire la distribuzione in una rete virtuale esistente anziché crearne uno nuovo.This article shows how to modify the minimum viable scale set template to deploy into an existing virtual network instead of creating a new one.

Modificare la definizione del modelloChange the template definition

Il modello di set di scalabilità minimo valido è disponibile qui, mentre il modello per la distribuzione del set di scalabilità in una rete virtuale esistente è disponibile qui.Our minimum viable scale set template can be seen here, and our template for deploying the scale set into an existing virtual network can be seen here. Viene ora esaminato il diff usato per creare questo modello, git diff minimum-viable-scale-set existing-vnet, passo per passo:Let's examine the diff used to create this template (git diff minimum-viable-scale-set existing-vnet) piece by piece:

Prima di tutto si aggiunge un parametro subnetId.First, we add a subnetId parameter. Questa stringa viene passata nella configurazione del set di scalabilità e permette di identificare la subnet, creata in precedenza, in cui distribuire le macchine virtuali.This string will be passed into the scale set configuration, allowing the scale set to identify the pre-created subnet to deploy virtual machines into. La stringa deve essere nel formato seguente: /subscriptions/<subscription-id>resourceGroups/<resource-group-name>/providers/Microsoft.Network/virtualNetworks/<virtual-network-name>/subnets/<subnet-name>.This string must be of the form: /subscriptions/<subscription-id>resourceGroups/<resource-group-name>/providers/Microsoft.Network/virtualNetworks/<virtual-network-name>/subnets/<subnet-name>. Ad esempio, per distribuire il set di scalabilità in una rete virtuale esistente denominata myvnet, subnet mysubnet, gruppo di risorse myrg e sottoscrizione00000000-0000-0000-0000-000000000000, l'ID subnet sarebbe il seguente: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myrg/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/mysubnet.For instance, to deploy the scale set into an existing virtual network with name myvnet, subnet mysubnet, resource group myrg, and subscription 00000000-0000-0000-0000-000000000000, the subnetId would be: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myrg/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/mysubnet.

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

Dal momento che si usa una rete virtuale esistente e non è necessario distribuirne una nuova, è possibile eliminare la risorsa rete virtuale dalla matrice resources.Next, we can delete the virtual network resource from the resources array, since we are using an existing virtual network and don't need to deploy a new one.

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

La rete virtuale esiste già prima della distribuzione del modello, non è quindi necessario specificare una clausola dependsOn dal set di scalabilità alla rete virtuale.The virtual network already exists before the template is deployed, so there is no need to specify a dependsOn clause from the scale set to the virtual network. Vengono quindi eliminate le righe seguenti:Thus, we delete these lines:

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

Infine, si passa il parametro subnetId impostato dall'utente, anziché usare resourceId per ottenere l'ID di una rete virtuale nella stessa distribuzione, perché questa operazione viene eseguita dal modello di set di scalabilità minimo valido.Finally, we pass in the subnetId parameter set by the user (instead of using resourceId to get the id of a vnet in the same deployment, which is what the minimum viable scale set template does).

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

Passaggi successiviNext steps

È possibile distribuire il modello precedente seguendo quanto indicato nella documentazione di Azure Resource Manager.You can deploy the preceding template by following the Azure Resource Manager documentation.

Questa serie di esercitazioni può essere avviata dall'articolo sul modello di set di scalabilità a validità minima.You can start this tutorial series from the minimum viable scale set template article.

È possibile vedere come modificare il modello di set di scalabilità a validità minima per distribuire il set di scalabilità in una rete virtuale esistente.You can see how to modify the minimum viable scale set template to deploy the scale set into an existing virtual network.

È possibile vedere come modificare il modello di set di scalabilità a validità minima per distribuire il set di scalabilità con un'immagine personalizzata.You can see how to modify the minimum viable scale set template to deploy the scale set with a custom image.

È possibile vedere come modificare il modello di set di scalabilità a validità minima per distribuire un set di scalabilità Linux con scalabilità automatica basata su guest.You can see how to modify the minimum viable scale set template to deploy a Linux scale set with guest-based autoscale.

Per informazioni più generali al riguardo, vedere la panoramica sui set di scalabilità.For more general information about scale sets, refer to the scale set overview page.