Tutorial: Creación de varias instancias de recursos con plantillas de Resource Manager

Aprenda a iterar por su plantilla de Azure Resource Manager (ARM) para crear varias instancias de un recurso de Azure. En este tutorial, se modifica una plantilla para crear tres instancias de cuenta de almacenamiento.

Diagrama que muestra la creación de varias instancias de Azure Resource Manager.

En este tutorial se describen las tareas siguientes:

  • Abra una plantilla de inicio rápido.
  • Edición de la plantilla
  • Implementación de la plantilla

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Para un módulo de Learn que abarca la copia de recursos, consulte Administración de implementaciones complejas en la nube mediante características avanzadas de la plantilla ARM.

Prerrequisitos

Para completar este artículo, necesitará lo siguiente:

Abra una plantilla de inicio rápido.

Plantillas de inicio rápido de Azure es un repositorio de plantillas de Azure Resource Manager. En lugar de crear una plantilla desde cero, puede buscar una plantilla de ejemplo y personalizarla. La plantilla usada en esta guía de inicio rápido se denomina Crear una cuenta de almacenamiento estándar. La plantilla define un recurso de la cuenta de almacenamiento de Azure.

  1. En Visual Studio Code, seleccione Archivo>Abrir archivo.

  2. En Nombre de archivo, pegue el código URL siguiente:

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json
    
  3. Seleccione Abrir para abrir el archivo.

  4. Hay un recurso Microsoft.Storage/storageAccounts definido en la plantilla. Compare la plantilla con la referencia de plantilla. Resulta útil obtener cierta información básica de la plantilla antes de personalizarla.

  5. Seleccione Archivo>Guardar como para guardar el archivo como azuredeploy.json en el equipo local.

Edición de la plantilla

La plantilla existente crea una cuenta de almacenamiento. Personalice la plantilla para crear tres cuentas de almacenamiento.

En Visual Studio Code, haga estos cuatro cambios:

Captura de pantalla de Visual Studio Code en la que se ve la creación de múltiples instancias con Azure Resource Manager.

  1. Agregue un elemento copy a la definición de recurso de la cuenta de almacenamiento. En el elemento copy, especifique el número de iteraciones y una variable para este bucle. El valor de recuento debe ser un número entero positivo y no puede ser superior a 800.

    "copy": {
      "name": "storageCopy",
      "count": 3
    },
    
  2. La función copyIndex() devuelve la iteración actual en el bucle. Utilice el índice como prefijo del nombre. copyIndex() es de base cero. Para desplazar el valor de índice, puede pasar un valor en la función copyIndex(). Por ejemplo, copyIndex(1).

    "name": "[format('{0}storage{1}', copyIndex(), uniqueString(resourceGroup().id))]",
    
    
    
  3. Elimine la definición de parámetro storageAccountName, porque ya no se usa.

  4. Elimine el elemento outputs. Ya no es necesario.

  5. Elimine el elemento metadata.

La plantilla completada tiene este aspecto:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageAccountType": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GRS",
        "Standard_GZRS",
        "Standard_LRS",
        "Standard_RAGRS",
        "Standard_RAGZRS",
        "Standard_ZRS"
      ],
      "metadata": {
        "description": "Storage Account type"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for the storage account."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-06-01",
      "name": "[format('{0}storage{1}', copyIndex(), uniqueString(resourceGroup().id))]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageAccountType')]"
      },
      "kind": "StorageV2",
      "copy": {
        "name": "storageCopy",
        "count": 3
      },
      "properties": {}
    }
  ]
}

Guarde los cambios.

Para más información sobre la creación de varias instancias, consulte Iteración de recursos en las plantillas de Resource Manager.

Implementación de la plantilla

  1. Inicio de sesión en Azure Cloud Shell

  2. Elija el entorno que prefiera; para ello, seleccione PowerShell o Bash (para CLI) en la esquina superior izquierda. Es necesario reiniciar el shell cuando realiza el cambio.

    Archivo de carga de Cloud Shell de Azure Portal

  3. Seleccione Cargar/descargar archivos y, después, seleccione Cargar. Consulte la captura de pantalla anterior. Seleccione el archivo que guardó en la sección anterior. Después de cargar el archivo, puede usar el comando ls y el comando cat para comprobar que la operación de carga se ha realizado correctamente.

  4. En Cloud Shell, ejecute los comandos siguientes. Seleccione la pestaña para mostrar el código de PowerShell o el código de la CLI.

    echo "Enter a project name that is used to generate resource group name:" &&
    read projectName &&
    echo "Enter the location (i.e. centralus):" &&
    read location &&
    resourceGroupName="${projectName}rg" &&
    az group create --name $resourceGroupName --location "$location" &&
    az deployment group create --resource-group $resourceGroupName --template-file "$HOME/azuredeploy.json"
    

Después de una implementación correcta de la plantilla, puede mostrar las tres cuentas de almacenamiento creadas en el grupo de recursos especificado. Compare los nombres de las cuentas de almacenamiento con la definición del nombre de la plantilla.

echo "Enter a project name that is used to generate resource group name:" &&
read projectName &&
resourceGroupName="${projectName}rg" &&
az storage account list --resource-group $resourceGroupName &&
echo "Press [ENTER] to continue ..."

Limpieza de recursos

Cuando los recursos de Azure ya no sean necesarios, limpie los recursos que implementó eliminando el grupo de recursos.

  1. En Azure Portal, seleccione Grupos de recursos en el menú de la izquierda.
  2. Escriba el nombre del grupo de recursos en el campo Filtrar por nombre.
  3. Seleccione el nombre del grupo de recursos. Verá un total de tres recursos en el grupo de recursos.
  4. Seleccione Eliminar grupo de recursos del menú superior.

Pasos siguientes

En este tutorial, aprendió a crear varias instancias de cuenta de almacenamiento. En el tutorial siguiente, desarrollará una plantilla con varios recursos y varios tipos de recursos. Algunos de los recursos tienen recursos dependientes.