Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Aprenda a implementar recursos de Azure en función de las condiciones de una plantilla de Azure Resource Manager (plantilla de ARM).
En el tutorial Establecer orden de implementación de recursos , creará una máquina virtual, una red virtual y otros recursos dependientes, incluida una cuenta de almacenamiento. En lugar de crear una nueva cuenta de almacenamiento cada vez, permite que los usuarios elijan entre crear una nueva cuenta de almacenamiento y usar una cuenta de almacenamiento existente. Para lograr este objetivo, defina un parámetro adicional. Si el valor del parámetro es nuevo, se crea una nueva cuenta de almacenamiento. De lo contrario, se usa una cuenta de almacenamiento existente con el nombre proporcionado.
En este tutorial se describen las siguientes tareas:
- Abrir una plantilla de inicio rápido
- Modificación de la plantilla
- Implementación de la plantilla
- Limpieza de recursos
El tutorial solo cubre un escenario básico de uso de las condiciones. Para obtener más información, consulte:
- Estructura del archivo de plantilla: Condición.
- Implemente condicionalmente un recurso en una plantilla de ARM.
- Función de plantilla: Si.
- Funciones de comparación para plantillas de ARM
Para obtener un módulo de Learn que abarque las condiciones, consulte Administración de implementaciones complejas en la nube mediante características avanzadas de plantillas de ARM.
Si no tiene una suscripción de Azure, cree una cuenta gratuita antes de empezar.
Prerrequisitos
Para completar este artículo, necesitará lo siguiente:
Para aumentar la seguridad, use una contraseña generada para la cuenta de administrador de la máquina virtual. Puede usar Azure Cloud Shell para ejecutar el siguiente comando en PowerShell o Bash:
openssl rand -base64 32Para obtener más información, ejecute
man openssl randpara abrir la página manual.Azure Key Vault está diseñado para proteger las claves criptográficas y otros secretos. Para más información, consulte Tutorial: Integración de Azure Key Vault en la implementación de plantillas de ARM. También se recomienda actualizar la contraseña cada tres meses.
Abrir una plantilla de inicio rápido
Plantillas de inicio rápido de Azure es un repositorio para plantillas de ARM. En lugar de crear una plantilla desde cero, puede encontrar una plantilla de ejemplo y personalizarla. La plantilla que se usa en este tutorial se denomina Implementación de una máquina virtual Windows sencilla.
En Visual Studio Code, seleccione Abrir archivo>.
En Nombre de archivo, pegue la siguiente dirección URL:
https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.jsonSeleccione Abrir para abrir el archivo.
La plantilla define seis recursos:
- Microsoft.Storage/storageAccounts.
- Microsoft.Network/publicIPAddresses.
- Microsoft.Network/networkSecurityGroups.
- Microsoft.Network/virtualNetworks.
- Microsoft.Network/networkInterfaces.
- Microsoft.Compute/virtualMachines.
Resulta útil revisar la referencia de plantilla antes de personalizar una plantilla.
Seleccione Guardar archivo>como para guardar una copia del archivo en el equipo local con el nombre azuredeploy.json.
Modificación de la plantilla
Realice dos cambios en la plantilla existente:
- Agregue un parámetro de nombre de cuenta de almacenamiento. Los usuarios pueden especificar un nuevo nombre de cuenta de almacenamiento o un nombre de cuenta de almacenamiento existente.
- Agregue un nuevo parámetro denominado
newOrExisting. La implementación usa este parámetro para determinar si se va a crear una nueva cuenta de almacenamiento o usar una cuenta de almacenamiento existente.
Este es el procedimiento para realizar los cambios:
Abra azuredeploy.json en Visual Studio Code.
Reemplace las tres
variables('storageAccountName')porparameters('storageAccountName')en toda la plantilla.Quite la siguiente definición de variable:
Agregue los dos parámetros siguientes al principio de la sección de parámetros:
"storageAccountName": { "type": "string" }, "newOrExisting": { "type": "string", "allowedValues": [ "new", "existing" ] },Presione Alt+Mayús+F para dar formato a la plantilla en Visual Studio Code.
La definición de parámetros actualizados tiene el siguiente aspecto:
Agregue la siguiente línea al principio de la definición de la cuenta de almacenamiento.
"condition": "[equals(parameters('newOrExisting'),'new')]",La condición comprueba el valor del parámetro
newOrExisting. Si el valor del parámetro es nuevo, la implementación crea la cuenta de almacenamiento.La definición de la cuenta de almacenamiento actualizada es similar a la siguiente:
Actualice la
storageUripropiedad de la definición de recursos de máquina virtual con el siguiente valor:"storageUri": "[format('https://{0}.blob.core.windows.net', parameters('storageAccountName'))]"Este cambio es necesario cuando se usa una cuenta de almacenamiento existente en otro grupo de recursos.
Guarde los cambios.
Implementación de la plantilla
Inicie sesión en Cloud Shell.
Elija su entorno preferido seleccionando PowerShell o Bash (para la CLI) en la esquina superior izquierda. Al cambiar, es necesario reiniciar el shell.
Seleccione Cargar o descargar archivos y, a continuación, seleccione Cargar. Vea la captura de pantalla anterior. Seleccione el archivo que guardó en la sección anterior. Después de cargar el archivo, puede usar el
lscomando y elcatcomando para comprobar que el archivo se cargó correctamente.Ejecute el siguiente script de PowerShell para implementar la plantilla.
Importante
El nombre de la cuenta de almacenamiento debe ser único en Azure. El nombre solo debe tener letras minúsculas o números. No puede tener más de 24 caracteres. El nombre de la cuenta de almacenamiento es el nombre del proyecto con el almacén anexado. Asegúrese de que el nombre del proyecto y el nombre de la cuenta de almacenamiento generado cumplen los requisitos de nombre de la cuenta de almacenamiento.
$projectName = Read-Host -Prompt "Enter a project name that is used to generate resource group name and resource names" $newOrExisting = Read-Host -Prompt "Create new or use existing (Enter new or existing)" $location = Read-Host -Prompt "Enter the Azure location (i.e. centralus)" $vmAdmin = Read-Host -Prompt "Enter the admin username" $vmPassword = Read-Host -Prompt "Enter the admin password" -AsSecureString $dnsLabelPrefix = Read-Host -Prompt "Enter the DNS Label prefix" $resourceGroupName = "${projectName}rg" $storageAccountName = "${projectName}store" New-AzResourceGroup -Name $resourceGroupName -Location $location New-AzResourceGroupDeployment ` -ResourceGroupName $resourceGroupName ` -adminUsername $vmAdmin ` -adminPassword $vmPassword ` -dnsLabelPrefix $dnsLabelPrefix ` -storageAccountName $storageAccountName ` -newOrExisting $newOrExisting ` -TemplateFile "$HOME/azuredeploy.json" Write-Host "Press [ENTER] to continue ..."Nota:
La implementación produce un error si
newOrExistinges nueva, pero la cuenta de almacenamiento con el nombre de cuenta de almacenamiento especificado ya existe.
Intente realizar otra implementación con la opción newOrExisting establecida en existente y especifique una cuenta de almacenamiento que ya exista. Para crear una cuenta de almacenamiento de antemano, consulte Creación de una cuenta de almacenamiento.
Limpieza de recursos
Cuando los recursos de Azure ya no sean necesarios, limpie los recursos implementados mediante la eliminación del grupo de recursos. Para eliminar el grupo de recursos, seleccione Pruébelo para abrir Cloud Shell. Para pegar el script de PowerShell, haga clic con el botón derecho en el panel de shell y, a continuación, seleccione Pegar.
$projectName = Read-Host -Prompt "Enter the same project name you used in the last procedure"
$resourceGroupName = "${projectName}rg"
Remove-AzResourceGroup -Name $resourceGroupName
Write-Host "Press [ENTER] to continue ..."
Pasos siguientes
En este tutorial, ha desarrollado una plantilla que permite a los usuarios elegir entre crear una nueva cuenta de almacenamiento y usar una cuenta de almacenamiento existente. Para obtener información sobre cómo recuperar secretos de Azure Key Vault y usar los secretos como contraseñas en la implementación de plantillas, consulte: