练习 - 使用 Azure 资源管理器标记和参数文件
在本练习中,你将添加标记以帮助组织和跟踪 Microsoft Azure 资源。 你还可以使用 Azure 资源管理器 (ARM) 模板参数文件支持每个部署的不同参数配置。
本练习使用适用于 Visual Studio Code 的 Azure 资源管理器工具。 请务必在 Visual Studio Code 中安装此扩展。
创建标记来跟踪资源部署环境和项目
首先创建一个要在模板中作为资源标记使用的参数。
在 Visual Studio Code 中,将光标放在 azuredeploy.json 文件中
storageSKU
参数的右大括号后面。 添加一个逗号,并按 Enter。键入 par。 将显示相关代码片段的列表。
选择 arm-param。 请注意,该操作会将泛型参数添加到模板。 如下代码所示:
"parameter1": { "type": "string", "metadata": { "description": "description" }
将
parameter1
更改为 resourceTags 并将"type":
的值更改为 object。 请注意,参数可以是 string、secureString、int、bool、object、secureObject 和 array 数据类型。 此模块的摘要中提供了指向这些参数类型的示例语法的链接。添加一个名为 defaultValue: 的特性,并将其值设置为 {"Environment":"Dev", "Project":"Tutorial"}。
参数块应类似于以下代码:
"parameters": { "storagePrefix": { "type": "string", "minLength": 3, "maxLength": 11 }, "storageSKU": { "type": "string", "defaultValue": "Standard_LRS", "allowedValues": [ "Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS" ] }, "resourceTags": { "type": "object", "defaultValue": { "Environment": "Dev", "Project": "Tutorial" } } },
使用此参数来标记存储帐户资源。 更改资源定义中的
tags:
特性:"tags": "[parameters('resourceTags')]",
你的文件应如下所示:
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "storagePrefix": { "type": "string", "minLength": 3, "maxLength": 11 }, "storageSKU": { "type": "string", "defaultValue": "Standard_LRS", "allowedValues": [ "Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS" ] }, "resourceTags": { "type": "object", "defaultValue": { "Environment": "Dev", "Project": "Tutorial" } } }, "functions": [], "variables": { "uniqueStorageName": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]" }, "resources": [{ "name": "[variables('uniqueStorageName')]", "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2019-06-01", "tags": "[parameters('resourceTags')]", "location": "[resourceGroup().location]", "kind": "StorageV2", "sku": { "name": "[parameters('storageSKU')]" } }], "outputs": {} }
保存文件。
使用已更新的标记部署 ARM 模板
将已更新的 ARM 模板部署到 Azure。 请务必使用以前使用过的相同
storagePrefix
。templateFile="azuredeploy.json" today=$(date +"%d-%b-%Y") DeploymentName="updateTags-"$today az deployment group create \ --name $DeploymentName \ --template-file $templateFile \ --parameters storagePrefix={your-Prefix} storageSKU=Standard_LRS
将已更新的 ARM 模板部署到 Azure。 请务必使用以前使用过的相同
storagePrefix
。$templateFile = "azuredeploy.json" $today=Get-Date -Format "MM-dd-yyyy" $deploymentName="updateTags-"+"$today" New-AzResourceGroupDeployment ` -Name $deploymentName ` -TemplateFile $templateFile ` -storagePrefix {your storagePrefix} ` -storageSKU Standard_LRS
验证部署中是否有新标记
在 Azure 中选择
[沙盒资源组名称] 资源组,然后选择你部署的存储帐户。请注意“Environment :Dev”和“Project :Tutorial”标记:
使用参数文件
目前,每次部署此模板时都需要填充三个参数。 模板的每个用户都可以创建文件来保存其参数值。 此处,你将创建一个用于模板的参数文件。
在 Visual Studio Code 中,创建另一个文件。 将其命名为 azuredeploy.parameters.dev.json。
在此文件中,将需要输入的模板参数的值添加到开发环境的模板中。 更改标记值以查看部署是否进行了更改。 例如,可以将
projectName
更改为“Learn”:{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "storagePrefix": { "value": "{unique-prefix}" }, "storageSKU": { "value": "Standard_LRS" }, "resourceTags": { "value": { "Environment": "Dev", "Project": "Learn" } } } }
请确保将
{unique-prefix}
替换为唯一前缀。保存文件。
使用参数文件部署模板
在本部分中,你将部署 ARM 模板,指定要使用的参数文件。
在 Visual Studio Code 终端中,运行以下 Azure CLI 命令:
templateFile="azuredeploy.json" devParameterFile="azuredeploy.parameters.dev.json" today=$(date +"%d-%b-%Y") DeploymentName="addParameterFile-"$today az deployment group create \ --name $DeploymentName \ --template-file $templateFile \ --parameters $devParameterFile
检查 Azure 以确保成功部署,以及确保标记值已更改:
难点在于,创建生产环境的参数文件。 运行命令以部署到生产环境时,请更改参数文件路径。
在 Visual Studio Code 终端中,运行以下 Azure PowerShell 命令:
$templateFile = "azuredeploy.json" $parameterFile="azuredeploy.parameters.dev.json" $today=Get-Date -Format "MM-dd-yyyy" $deploymentName="addParameterFile-"+"$today" New-AzResourceGroupDeployment ` -Name $deploymentName ` -TemplateFile $templateFile ` -TemplateParameterFile $parameterFile
检查 Azure 以确保成功部署,以及确保标记值已更改:
难点在于,创建生产环境的参数文件。 运行命令以部署到生产环境时,请更改参数文件路径。