Упражнение. Использование тегов и файлов параметров Azure Resource Manager

Завершено

В этом упражнении вы добавите теги, которые помогут упорядочивать и отслеживать ресурсы Microsoft Azure. Вы также используете файл параметров шаблона Azure Resource Manager (ARM), чтобы разрешить различные конфигурации параметров для каждого развертывания.

В этом упражнении используются инструменты Azure Resource Manager для Visual Studio Code. Убедитесь, что это расширение установлено в Visual Studio Code.

Создание тега для отслеживания среды развертывания ресурса и проекта

Сначала создайте параметр, который будет использоваться в качестве тега ресурса в шаблоне.

  1. В файле azuredeploy.json в Visual Studio Code поместите курсор после закрывающей скобки параметра storageSKU. Добавьте запятую и нажмите клавишу ВВОД.

  2. Введите par. Появится список связанных фрагментов кода.

  3. Выберите arm-param. Помните, что при этом в шаблон добавляется универсальный параметр. Этот код выглядит следующим образом:

    "parameter1": {
        "type": "string",
        "metadata": {
            "description": "description"
        }
    
  4. Замените parameter1 на resourceTags и измените значение "type": на object. Помните, что параметры могут быть следующими: string, secureString, int, bool, Object, secureObject и типами данных массива. Ссылка на пример синтаксиса для этих типов параметров приведена в сводке по этому модулю.

  5. Добавьте атрибут с именем 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"
            }
        }
    },
    
  6. Используйте этот параметр, чтобы отметить тегом ресурс учетной записи хранения. Измените атрибут tags: в определении ресурса:

    "tags": "[parameters('resourceTags')]",
    
  7. Файл должен выглядеть следующим образом:

    {
        "$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": {}
    }
    
  8. Сохраните файл.

Развертывание шаблона 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
    

Убедитесь, что новые теги находятся в развертывании.

  1. Выберите в Azure группу ресурсов [имя группы ресурсов песочницы], а затем развернутую учетную запись хранения.

  2. Обратите внимание на среду: разработка и проект: теги учебников :

    Screenshot of the Azure portal that shows the selected tags in the Storage account Overview page.

Использование файла параметров

В настоящее время каждый раз при развертывании этого шаблона нужно заполнить три параметра. Каждый пользователь шаблона может создать файл для хранения значений параметров. Здесь вы создадите файл параметров для использования с шаблоном.

  1. В Visual Studio Code создайте другой файл. Присвойте ему имя azuredeploy.parameters.dev.json.

  2. В этом файле вы добавите значения для параметров шаблона, которые хотите ввести в шаблон для среды разработки. Измените значение тега, и в развертывании отразятся изменения. Например, можно изменить 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"
          }
        }
      }
    }
    
  3. Обязательно замените {unique-prefix} уникальным префиксом.

  4. Сохраните файл.

Развертывание шаблона с помощью файла параметров

В этом разделе вы развернете шаблон ARM, указывающий, какой файл параметров следует использовать.

  1. В окне терминала 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
    
  2. Проверьте в Azure, что развертывание прошло успешно и что значение тега изменилось:

    Screenshot of the Azure portal that shows the updated tag values in the Storage account Overview page.

  3. Попробуйте поэкспериментировать и создать файл параметров для рабочей среды. Измените путь к файлу параметров при выполнении команды для развертывания в рабочей среде.

  1. В окне терминала 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
    
  2. Проверьте в Azure, что развертывание прошло успешно и что значение тега изменилось:

    Screenshot of the Azure portal that shows the updated tag values in the Storage account Overview page.

  3. Попробуйте поэкспериментировать и создать файл параметров для рабочей среды. Измените путь к файлу параметров при выполнении команды для развертывания в рабочей среде.