Referencia a una red virtual existente en una plantilla de conjunto de escalado de Azure

En este artículo se muestra cómo modificar la plantilla de conjunto de escalado básico para realizar la implementación en una red virtual existente en lugar de crear una nueva.

Requisitos previos

En un artículo anterior habíamos creado una plantilla básica de conjunto de escalado. Ahora necesitamos modificar esa plantilla y crear una que implemente un conjunto de escalado en una red virtual existente.

Identificación de la subred

Primero, agregue un parámetro subnetId. Esta cadena se pasa a la configuración del conjunto de escalado, lo que permite que el conjunto de escalado identifique la subred creada anteriormente en la que implementar las máquinas virtuales. Esta cadena debe tener el formato: .

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

Por ejemplo, para implementar el conjunto de escalado en una red virtual existente con el nombre myvnet, la subred mysubnet, el grupo de recursos myrg y la suscripción 00000000-0000-0000-0000-000000000000, el valor de subnetId sería:

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

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

Eliminación del recurso de red virtual adicional

A continuación, elimine el recurso de red virtual de la matriz resources, puesto que usa una red virtual existente y no necesita implementar una nueva.

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

Eliminación de la cláusula de dependencia

La red virtual ya existe antes de que se implemente la plantilla, así que no es necesario especificar una cláusula dependsOn entre el conjunto de escalado y la red virtual. Elimine las líneas siguientes:

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

Paso de parámetros de subred

Por último, pase el parámetro subnetId definido por el usuario (en lugar de usar resourceId para obtener el identificador de una red virtual en la misma implementación, que es lo que hace la plantilla de conjunto de escalado viable básico).

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

Pasos siguientes

Para implementar la plantilla anterior, siga la documentación de Azure Resource Manager.

Puede iniciar esta serie de tutoriales con el artículo Más información sobre las plantillas de conjuntos de escalado de máquinas virtuales.

Puede ver cómo modificar la plantilla de conjunto de escalado básico para implementar el conjunto de escalado en una red virtual existente.

Puede ver cómo modificar la plantilla de conjunto de escalado básico para implementar el conjunto de escalado con una imagen personalizada.

Puede ver cómo modificar la plantilla de conjunto de escalado básico para implementar un conjunto de escalado de Linux con escalabilidad automática basada en invitados.

Para obtener más información sobre los conjuntos de escalado, vea la página de información general sobre los conjuntos de escalado.