Tutorial: Creación de plantillas de Resource Manager con recursos dependientes

Aprenda a crear una plantilla de Azure Resource Manager (ARM) para implementar varios recursos y configurar la orden de implementación. Después de crear la plantilla, puede implementarla mediante Azure Cloud Shell en Azure Portal.

En este tutorial, creará una cuenta de almacenamiento, una máquina virtual, una red virtual y algunos otros recursos dependientes. Algunos de los recursos no se pueden implementar hasta que existe otro recurso. Por ejemplo, no se puede crear la máquina virtual hasta que existe su cuenta de almacenamiento y la interfaz de red. Esta relación se define al marcar un recurso como dependiente de los otros. Administrador de recursos evalúa las dependencias entre recursos y los implementa en su orden dependiente. Cuando no hay recursos dependientes entre sí, Resource Manager los implementa en paralelo. Para más información consulte Definición del orden de implementación de recursos en plantillas de Azure Resource Manager.

Diagrama que muestra el orden de implementación de los recursos dependientes en una plantilla de Administración de recursos.

En este tutorial se describen las tareas siguientes:

  • Abra una plantilla de inicio rápido.
  • Exploració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 las dependencias de los recursos, consulte Administración de implementaciones complejas en la nube mediante características avanzadas de la plantilla de 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 que se usa en este tutorial se denomina Deploy a simple Windows VM.

  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.compute/vm-simple-windows/azuredeploy.json
    
  3. Seleccione Abrir para abrir el archivo.

  4. Seleccione Archivo>Guardar como para guardar una copia del archivo en la máquina local con el nombre azuredeploy.json.

Exploración de la plantilla

Al explorar la plantilla de esta sección, intente responder estas preguntas:

  • ¿Cuántos recursos de Azure se definen en esta plantilla?
  • Uno de los recursos es una cuenta de Azure Storage. ¿Se parece la definición a la que se usó en el último tutorial?
  • ¿Encuentra las referencias de la plantilla para los recursos definidos en esta plantilla?
  • ¿Encuentra las dependencias de los recursos?
  1. En Visual Studio Code, contraiga los elementos hasta que vea únicamente los elementos de primer nivel y los de segundo nivel dentro de resources:

    Captura de pantalla de Visual Studio Code mostrando una plantilla ARM con elementos ocultos.

    La plantilla define seis recursos:

  2. Expanda el primer recurso. Es una cuenta de almacenamiento. Compare la definición del recurso con la referencia de la plantilla.

    Captura de pantalla de Visual Studio Code que muestra la definición de la cuenta de almacenamiento en una plantilla ARM.

  3. Expanda el segundo recurso. El tipo de recurso es Microsoft.Network/publicIPAddresses. Compare la definición del recurso con la referencia de la plantilla.

    Captura de pantalla de Visual Studio Code que muestra la definición de la IP pública en una plantilla ARM.

  4. Expanda el tercer recurso. El tipo de recurso es Microsoft.Network/networkSecurityGroups. Compare la definición del recurso con la referencia de la plantilla.

    Captura de pantalla de Visual Studio Code que muestra la definición del grupo de seguridad de red en una plantilla ARM.

  5. Expanda el cuarto recurso. El tipo de recurso es Microsoft.Network/virtualNetworks:

    Captura de pantalla de Visual Studio Code que muestra la definición de la red virtual con el elemento dependsOn en una plantilla ARM.

    El elemento dependsOn le permite definir un recurso como dependiente de uno o varios recursos. Este recurso depende de otro recurso:

    • Microsoft.Network/networkSecurityGroups
  6. Expanda el quinto recurso. El tipo de recurso es Microsoft.Network/networkInterfaces. El recurso depende de otros dos recursos:

    • Microsoft.Network/publicIPAddresses
    • Microsoft.Network/virtualNetworks
  7. Expanda el sexto recurso. Este recurso es una máquina virtual. Depende de otros dos recursos:

    • Microsoft.Storage/storageAccounts
    • Microsoft.Network/networkInterfaces

El siguiente diagrama muestra los recursos y la información de dependencia de esta plantilla:

Diagrama que muestra la relación de dependencia entre recursos en una plantilla de ARM desplegada en Visual Studio Code.

Mediante la especificación de las dependencias, Resource Manager implementa de forma eficaz la solución. Este implementa la cuenta de almacenamiento, la dirección IP pública y la red virtual en paralelo porque no tienen ninguna dependencia. Una vez implementadas la dirección IP y la red virtual, se crea la interfaz de red. Cuando se han implementado los recursos restantes, Resource Manager implementa la máquina virtual.

Implementación de la plantilla

  1. Inicie sesión en 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.

    Captura de pantalla de Azure Portal Cloud Shell con la opción cargar archivo resaltada.

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

  4. Ejecute el siguiente script de PowerShell para implementar la plantilla.

    echo "Enter a project name that is used to generate resource group name:" &&
    read projectName &&
    echo "Enter the location (i.e. centralus):" &&
    read location &&
    echo "Enter the virtual machine admin username:" &&
    read adminUsername &&
    echo "Enter the DNS label prefix:" &&
    read dnsLabelPrefix &&
    resourceGroupName="${projectName}rg" &&
    az group create --name $resourceGroupName --location $location &&
    az deployment group create --resource-group $resourceGroupName --template-file "$HOME/azuredeploy.json" --parameters adminUsername=$adminUsername dnsLabelPrefix=$dnsLabelPrefix
    
  5. RDP a la máquina virtual para comprobar que la máquina virtual se ha creado correctamente.

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 seis recursos en el grupo de recursos.
  4. Seleccione Eliminar grupo de recursos del menú superior.

Pasos siguientes

En este tutorial, ha desarrollado e implementado una plantilla para crear una máquina virtual, una red virtual y los recursos dependientes. Para aprender a usar los scripts de implementación para realizar operaciones antes y después de esta, consulte: