Mantenimiento de varias implementaciones de Azure mediante el uso de etiquetas de plantilla de Azure Resource Manager y archivos de parámetros
Hay dos características de las plantillas de Azure Resource Manager (ARM) que querrá usar al realizar la implementación en más de un entorno de Azure. Estas características son las etiquetas de recursos y los archivos de parámetros de plantilla de Resource Manager.
A medida que agregue más recursos a los entornos, verá rápidamente que necesita una forma de identificar la finalidad de esos recursos. Con este fin, los recursos disponen de un atributo tags:
. A medida que se implementan más entornos, se necesita una forma eficaz de realizar un seguimiento de los parámetros de entrada. Las plantillas de ARM pueden usar archivos de parámetros para administrar los parámetros de cada entorno de implementación.
¿Qué es una etiqueta de recurso de Azure?
Puede etiquetar los recursos para agregar valores que le ayuden a identificar su uso. Por ejemplo, puede agregar etiquetas que enumeren el entorno y el proyecto al que pertenece un recurso. O bien, puede agregar etiquetas que identifiquen un centro de costos o el equipo propietario de un recurso. Agregue los valores que tengan sentido para la organización.
El valor de la etiqueta se muestra en la página de información general correspondiente al recurso de Azure y en los informes de costos.
Procedimiento para crear una etiqueta de recursos de Azure
Cada recurso tiene un atributo tags:
. Hasta ahora, ha usado el parámetro displayName
predeterminado para la etiqueta de la cuenta de almacenamiento:
"tags": {
"displayName": "[parameters('storageName')]"
},
Para que este atributo sea más útil, puede definir un parámetro que tenga más información y, después, usarlo en el atributo tags:
. Por ejemplo, puede crear un parámetro que contenga un objeto denominado resourceTags
:
"resourceTags": {
"type": "object",
"defaultValue": {
"Environment": "Dev",
"Project": "Inventory"
}
}
Aquí, ha creado un objeto para contener los valores de un nombre de entorno y un nombre de proyecto, pero puede definir todo lo que desee.
Después, puede usar ese parámetro para cualquier recurso que sea para el entorno de desarrollo y el proyecto Inventory. por ejemplo, la cuenta de almacenamiento.
"resources": [{
"name": "[variables('uniqueStorageName')]",
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-06-01",
"tags": "[parameters('resourceTags')]",
...
}],
¿Qué es un archivo de parámetros de plantilla de Resource Manager?
Un archivo de parámetros de plantilla de ARM contiene los valores que pasarán a la plantilla de ARM cuando esta se ejecute. Al usar un archivo de parámetros para cada entorno en el que se implementa una plantilla de ARM, se garantiza el establecimiento de los parámetros correctos para ese entorno concreto. Además, se asegura de poder realizar el seguimiento del historial y el mantenimiento de esos valores de parámetro en el control de código fuente.
Procedimiento para usar archivos de parámetros de plantilla de Resource Manager
Los archivos de parámetros de plantilla de Resource Manager son archivos JSON que contienen valores de parámetros. Por ejemplo, para los parámetros que ha usado en la plantilla de ARM hasta ahora, podría crear un archivo de parámetros de plantilla de esta forma:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"value": "storage"
},
"storageSKU": {
"value": "Standard_LRS"
},
"resourceTags": {
"value": {
"Environment": "Dev",
"Project": "Learn"
}
}
}
}
Después, podría crear un archivo similar a este para cada entorno. Por ejemplo, estos archivos se podrían denominar azuredeploy.parameters.dev.json y azuredeploy.parameters.prod.json, y contener valores diferentes para los parámetros.
Para implementar una plantilla de ARM mediante un archivo de parámetros, especifique la ruta de acceso al archivo de parámetros en el comando de implementación. En la CLI de Azure, utilice --parameters {path to parameter file}
. En PowerShell, utilice -TemplateParameterFile {path to parameter file}
.
templateFile="{path-to-the-template-file}"
devParameterFile="{path-to-azuredeploy.parameters.dev.json}"
az group create \
--name myResourceGroupDev \
--location "East US"
az deployment group create \
--name devenvironment \
--resource-group myResourceGroupDev \
--template-file $templateFile \
--parameters $devParameterFile