Reutilización de expresiones usando variables de plantilla de Azure Resource Manager
En el escenario anterior, ha decidido usar una expresión compuesta por varias funciones de plantilla de Azure Resource Manager (ARM) para crear un nombre único para la cuenta de almacenamiento de Azure. Esta flexibilidad garantiza que todos los cliente puedan usar la plantilla de ARM en sus implementaciones. Sin embargo, observa que cuando se agrega esta expresión en varios lugares el mantenimiento de la plantilla se convierte en un problema. Decide usar una variable para la expresión de nombre de la cuenta de almacenamiento con el fin de poder definir la expresión en un lugar y reutilizarla en toda la plantilla.
¿Qué es una variable de plantilla de Resource Manager?
Una variable de plantilla de Resource Manager es una construcción que contiene un valor para usarlo más adelante. Las variables son más útiles cuando hay que especificar un valor en varios lugares de una plantilla. Siempre que se utilice la variable en la plantilla, Resource Manager la reemplazará por el valor resuelto.
Por ejemplo, supongamos que tiene una expresión que define un valor para una ubicación de recursos. Varios de los recursos que ha definido en la plantilla requieren una ubicación. Puede crear una variable para contener la expresión de ubicación y, después, usarla siempre que se requiera una ubicación.
Ventajas de usar variables de plantilla de Resource Manager
Las variables de plantilla de Resource Manager permiten escribir una expresión una vez y usarla en varios lugares. Además, el mantenimiento de la expresión se realiza en un solo lugar y la plantilla es más fácil de leer.
Procedimiento para usar variables de plantilla de Resource Manager
Las variables de plantilla de Resource Manager se definen en la sección variables: {}
de una plantilla. Por ejemplo, esta es la expresión para el nombre de la cuenta de almacenamiento que ha definido en la última unidad. Ahora define el valor de la variable storageName
.
"variables": {
"storageName": "[concat(toLower(parameters('storageNamePrefix')), uniqueString(resourceGroup().id))]"
},
Después, puede usar la variable en la plantilla siempre que necesite el nombre de la cuenta de almacenamiento:
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"name": "[variables('storageName')]",
...
}
]
Recomendaciones para las variables de plantilla de Resource Manager
Las variables de plantilla se especifican en minúsculas Camel. Son más prácticas para valores que se deben especificar más de una vez, especialmente si ese valor es una expresión compleja.
No use la función reference
en la sección de variables de una plantilla. La función reference
se resuelve en tiempo de ejecución, y las variables se resuelven cuando se analiza la plantilla. Tampoco use variables para apiVersion
en un recurso. La versión de API determina el esquema del recurso y, a menudo, la versión no se puede modificar sin cambiar las propiedades del recurso.