Hinzufügen eines Verweises auf ein vorhandenes virtuelles Netzwerk in einer Vorlage für eine Azure-SkalierungsgruppeAdd reference to an existing virtual network in an Azure scale set template

In diesem Artikel wird gezeigt, wie die Vorlage für eine grundlegende Skalierungsgruppe geändert wird, um die Bereitstellung in einem vorhandenen virtuellen Netzwerk durchzuführen, statt ein neues zu erstellen.This article shows how to modify the basic scale set template to deploy into an existing virtual network instead of creating a new one.

Ändern der VorlagendefinitionChange the template definition

In einem vorherigen Artikel haben wir eine grundlegende Vorlage für eine Skalierungsgruppe erstellt.In a previous article we had created a basic scale set template. Wir verwenden nun diese frühere Vorlage und ändern sie, um eine Vorlage zu erstellen, die eine Skalierungsgruppe in einem vorhandenen virtuellen Netzwerk bereitstellt.We will now use that earlier template and modify it to create a template that deploys a scale set into an existing virtual network.

Fügen Sie zunächst einen subnetId-Parameter hinzu.First, add a subnetId parameter. Diese Zeichenfolge wird an die Skalierungsgruppenkonfiguration übergeben und ermöglicht der Skalierungsgruppe das Identifizieren des vorab erstellten Subnetzes, in dem virtuelle Computer bereitgestellt werden sollen.This string is passed into the scale set configuration, allowing the scale set to identify the pre-created subnet to deploy virtual machines into. Diese Zeichenfolge muss folgendes Format aufweisen: /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>

Beispiel: Zum Bereitstellen der Skalierungsgruppe in einem vorhandenen virtuellen Netzwerk mit dem Namen myvnet, dem Subnetz mysubnet, der Ressourcengruppe myrg, und dem Abonnement 00000000-0000-0000-0000-000000000000, wäre „subnetId“: /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"
     }
   },

Löschen Sie als Nächstes die Ressource für das virtuelle Netzwerk aus dem resources-Array, da Sie ein vorhandenes virtuelles Netzwerk verwenden und kein neues bereitstellen müssen.Next, delete the virtual network resource from the resources array, as you use 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": "2018-11-01",
-      "properties": {
-        "addressSpace": {
-          "addressPrefixes": [
-            "10.0.0.0/16"
-          ]
-        },
-        "subnets": [
-          {
-            "name": "mySubnet",
-            "properties": {
-              "addressPrefix": "10.0.0.0/16"
-            }
-          }
-        ]
-      }
-    },

Das virtuelle Netzwerk ist bereits vorhanden, bevor die Vorlage bereitgestellt wird, daher besteht keine Notwendigkeit, eine dependsOn-Klausel in der Skalierungsgruppe für das virtuelle Netzwerk anzugeben.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. Löschen Sie die folgenden Zeilen:Delete the following lines:

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

Schließlich übergeben Sie den subnetId-Parameter, der vom Benutzer festgelegt wird (statt resourceId, um die ID des VNET in der gleichen Bereitstellung abzurufen, was von der Vorlage für die grundlegende Skalierungsgruppe ausgeführt wird).Finally, 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 basic viable scale set template does).

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

Nächste SchritteNext steps

Eine Anleitung zum Bereitstellen der vorherigen Vorlage finden Sie in der Dokumentation für Azure Resource Manager.You can deploy the preceding template by following the Azure Resource Manager documentation.

Sie können diese Tutorialreihe über den Artikel zur Vorlage für eine einfache Skalierungsgruppe starten.You can start this tutorial series from the basic scale set template article.

Sie erfahren, wie die Vorlage für eine einfache Skalierungsgruppe geändert wird, um die Skalierungsgruppe in einem vorhandenen virtuellen Netzwerk bereitzustellen.You can see how to modify the basic scale set template to deploy the scale set into an existing virtual network.

Sie erfahren, wie die Vorlage für eine einfache Skalierungsgruppe geändert wird, um die Skalierungsgruppe mit einem benutzerdefinierten Image bereitzustellen.You can see how to modify the basic scale set template to deploy the scale set with a custom image.

Sie erfahren, wie die Vorlage für eine einfache Skalierungsgruppe geändert wird, um eine Linux-Skalierungsgruppe mit gastbasierter automatischer Skalierung bereitzustellen.You can see how to modify the basic scale set template to deploy a Linux scale set with guest-based autoscale.

Weitere Informationen zu Skalierungsgruppen finden Sie in der Übersicht über Skalierungsgruppen.For more information about scale sets, refer to the scale set overview page.