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.
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:
- Visual Studio Code con la extensión Resource Manager Tools. Consulte Quickstart: Creación de plantillas de ARM mediante Visual Studio Code.
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.
En Visual Studio Code, seleccione Archivo>Abrir archivo.
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
Seleccione Abrir para abrir el archivo.
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.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:
Agregue un elemento
copy
a la definición de recurso de la cuenta de almacenamiento. En el elementocopy
, 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 },
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óncopyIndex()
. Por ejemplo,copyIndex(1)
."name": "[format('{0}storage{1}', copyIndex(), uniqueString(resourceGroup().id))]",
Elimine la definición de parámetro
storageAccountName
, porque ya no se usa.Elimine el elemento
outputs
. Ya no es necesario.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
Inicio de sesión en Azure Cloud Shell
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.
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 comandocat
para comprobar que la operación de carga se ha realizado correctamente.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.
- En Azure Portal, seleccione Grupos de recursos en el menú de la izquierda.
- Escriba el nombre del grupo de recursos en el campo Filtrar por nombre.
- Seleccione el nombre del grupo de recursos. Verá un total de tres recursos en el grupo de recursos.
- 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.