Руководство по Использование условия в шаблонах Azure Resource ManagerTutorial: Use condition in Azure Resource Manager templates

Узнайте, как развернуть ресурсы Azure на основе условий.Learn how to deploy Azure resources based on conditions.

В руководстве по настройке порядка развертывания ресурсов описано, как создать виртуальную машину, виртуальную сеть и некоторые другие зависимые ресурсы, включая учетную запись хранения.In the Set resource deployment order tutorial, you create a virtual machine, a virtual network, and some other dependent resources including a storage account. Чтобы не создавать учетную запись хранения каждый раз, вы можете позволить пользователям выбрать, создавать ли новую учетную запись хранения или использовать существующую.Instead of creating a new storage account every time, you let people choose between creating a new storage account and using an existing storage account. Для достижения этой цели нужно определить дополнительный параметр.To accomplish this goal, you define an additional parameter. Если значение параметра равно "new", будет создана новая учетная запись хранения.If the value of the parameter is "new", a new storage account is created. В противном случае используется учетная запись хранения с указанным именем.Otherwise, an existing storage account with the name provided is used.

Схема использования условия в шаблонах Azure Resource Manager

В рамках этого руководства рассматриваются следующие задачи:This tutorial covers the following tasks:

  • открытие шаблона быстрого запуска;Open a QuickStart template
  • Изменение шаблонаModify the template
  • Развертывание шаблонаDeploy the template
  • Очистка ресурсовClean up resources

В этом учебнике рассматривается только основной сценарий с использованием условий.This tutorial only covers a basic scenario of using conditions. Дополнительные сведения можно найти в разделеFor more information, see:

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.If you don't have an Azure subscription, create a free account before you begin.

Предварительные требованияPrerequisites

Для работы с этой статьей необходимо иметь следующее.To complete this article, you need:

Открытие шаблона быстрого запускаOpen a Quickstart template

Шаблоны быстрого запуска Azure являются репозиторием для шаблонов Resource Manager.Azure QuickStart Templates is a repository for Resource Manager templates. Вместо создания шаблона с нуля можно найти пример шаблона и настроить его.Instead of creating a template from scratch, you can find a sample template and customize it. Шаблон, используемый в этом руководстве, называется Deploy a simple Windows VM (Развертывание простой виртуальной машины Windows).The template used in this tutorial is called Deploy a simple Windows VM.

  1. В Visual Studio Code выберите Файл>Открыть файл.From Visual Studio Code, select File>Open File.

  2. Скопируйте приведенный ниже URL-адрес и вставьте его в поле Имя файла.In File name, paste the following URL:

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.json
    
  3. Чтобы открыть файл, выберите Открыть.Select Open to open the file.

  4. Шаблоном определено пять ресурсов:There are five resources defined by the template:

  5. Выберите Файл>Сохранить как, чтобы сохранить файл на локальный компьютер с именем azuredeploy.json.Select File>Save As to save a copy of the file to your local computer with the name azuredeploy.json.

Изменение шаблонаModify the template

Внесите два изменения в имеющийся шаблон:Make two changes to the existing template:

  • Добавьте параметр имени для учетной записи хранения.Add a storage account name parameter. Пользователи могут указать имя новой или существующей учетной записи хранения.Users can specify either a new storage account name or an existing storage account name.
  • Добавьте новый параметр с именем newOrExisting.Add a new parameter called newOrExisting. Развертывание использует этот параметр для определения того, нужно ли создавать новую учетную запись хранения или использовать имеющуюся.The deployment uses this parameter to determine whether to create a new storage account or use an existing storage account.

Вот что нужно сделать, чтобы внести изменения:Here is the procedure to make the changes:

  1. Откройте файл azuredeploy.json в Visual Studio Code.Open azuredeploy.json in Visual Studio Code.

  2. Замените во всем шаблоне three variables('storageAccountName') на parameters('storageAccountName') .Replace the three variables('storageAccountName') with parameters('storageAccountName') in the whole template.

  3. Удалите следующее определение переменной:Remove the following variable definition:

    Схема использования условия в шаблонах Azure Resource Manager

  4. Добавьте следующие два параметра в шаблон:Add the following two parameters to the template:

    "storageAccountName": {
      "type": "string"
    },
    "newOrExisting": {
      "type": "string",
      "allowedValues": [
        "new",
        "existing"
      ]
    },
    

    Определение обновленных параметров выглядит так:The updated parameters definition looks like:

    Условие использования Resource Manager

  5. Добавьте следующую строку в начало определения учетной записи хранения.Add the following line to the beginning of the storage account definition.

    "condition": "[equals(parameters('newOrExisting'),'new')]",
    

    Условие проверяет значение параметра с именем newOrExisting.The condition checks the value of a parameter called newOrExisting. Если значение параметра равно new, то в результате развертывания создается учетная запись хранения.If the parameter value is new, the deployment creates the storage account.

    Обновленное определение учетной записи хранения выглядит так:The updated storage account definition looks like:

    Условие использования Resource Manager

  6. Обновите свойство storageUri определения ресурса виртуальной машины следующим значением:Update the storageUri property of the virtual machine resource definition with the following value:

    "storageUri": "[concat('https://', parameters('storageAccountName'), '.blob.core.windows.net')]"
    

    Это изменение необходимо при использовании существующей учетной записи хранения с другой группой ресурсов.This change is necessary when you use an existing storage account under a different resource group.

  7. Сохраните изменения.Save the changes.

Развертывание шаблонаDeploy the template

Следуйте инструкциям из раздела о развертывании шаблона, чтобы открыть Cloud Shell и отправить измененный шаблон, а затем выполните скрипт PowerShell для развертывания шаблона.Follow the instructions in Deploy the template to open the Cloud shell and upload the revised template, and then run the following PowerShell script to deploy the template.

$resourceGroupName = Read-Host -Prompt "Enter the resource group name"
$storageAccountName = Read-Host -Prompt "Enter the storage account name"
$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"

New-AzResourceGroup -Name $resourceGroupName -Location $location
New-AzResourceGroupDeployment `
    -ResourceGroupName $resourceGroupName `
    -adminUsername $vmAdmin `
    -adminPassword $vmPassword `
    -dnsLabelPrefix $dnsLabelPrefix `
    -storageAccountName $storageAccountName `
    -newOrExisting $newOrExisting `
    -TemplateFile "$HOME/azuredeploy.json"

Примечание

Развертывание завершается сбоем, если newOrExistingnew, а учетная запись хранения с указанным именем уже существует.The deployment fails if newOrExisting is new, but the storage account with the storage account name specified already exists.

Попробуйте сделать другое развертывания, задав для newOrExisting значение "existing" и указав имеющуюся учетную запись хранения.Try making another deployment with newOrExisting set to "existing" and specify an existing storage account. Чтобы создать учетную запись хранения, обратитесь к этой статье.To create a storage account beforehand, see Create a storage account.

Очистка ресурсовClean up resources

Если ресурсы Azure больше не нужны, их можно удалить. Для этого необходимо удалить группу ресурсов.When the Azure resources are no longer needed, clean up the resources you deployed by deleting the resource group. Чтобы удалить группу ресурсов, выберите Попробовать, чтобы открыть Cloud Shell.To delete the resource group, select Try it to open the Cloud shell. Чтобы вставить сценарий PowerShell, щелкните панель оболочки правой кнопкой мыши и выберите Вставить.To paste the PowerShell script, right-click the shell pane, and then select Paste.

$resourceGroupName = Read-Host -Prompt "Enter the same resource group name you used in the last procedure"
Remove-AzResourceGroup -Name $resourceGroupName

Дополнительная информацияNext steps

В этом руководстве описано, как разработать шаблон, позволяющий пользователю выбирать между созданием учетной записи хранения и использованием существующей.In this tutorial, you developed a template that allows users to choose between creating a new storage account and using an existing storage account. Чтобы узнать, как получать секреты из Azure Key Vault и использовать их в шаблоне развертывания в качестве паролей, обратитесь к статье:To learn how to retrieve secrets from Azure Key Vault, and use the secrets as passwords in the template deployment, see: