Поделиться через


Руководство по Использование условия в шаблонах ARM

Узнайте о том, как развернуть ресурсы Azure на основе условий в шаблоне Azure Resource Manager.

В руководстве по настройке порядка развертывания ресурсов описано, как создать виртуальную машину, виртуальную сеть и некоторые другие зависимые ресурсы, включая учетную запись хранения. Чтобы не создавать учетную запись хранения каждый раз, вы можете позволить пользователям выбрать, создавать ли новую учетную запись хранения или использовать существующую. Для достижения этой цели нужно определить дополнительный параметр. Если значение параметра равно new, будет создана новая учетная запись хранения. В противном случае используется учетная запись хранения с указанным именем.

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

В рамках этого руководства рассматриваются следующие задачи:

  • Открытие шаблона быстрого запуска
  • Изменение шаблона
  • Развертывание шаблона
  • Очистка ресурсов

В этом учебнике рассматривается только основной сценарий с использованием условий. Дополнительные сведения см. в разделе:

Сведения о модулях Microsoft Learn с описанием условий см. в статье Управление сложными облачными развертываниями с помощью расширенных функций шаблонов ARM.

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

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

Для работы с этой статьей необходимо иметь следующее.

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

Шаблоны быстрого запуска Azure — это репозиторий для шаблонов ARM. Вместо создания шаблона с нуля можно найти пример шаблона и настроить его. Шаблон, используемый в этом руководстве, называется Deploy a simple Windows VM (Развертывание простой виртуальной машины Windows).

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

  2. Скопируйте приведенный ниже URL-адрес и вставьте его в поле Имя файла.

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
    
  3. Чтобы открыть файл, выберите Открыть.

  4. Шаблоном определено шесть ресурсов:

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

  5. Выберите Файл>Сохранить как, чтобы сохранить файл на локальный компьютер с именем azuredeploy.json.

Изменение шаблона

Внесите два изменения в имеющийся шаблон:

  • Добавьте параметр имени для учетной записи хранения. Пользователи могут указать имя новой или существующей учетной записи хранения.
  • Добавьте новый параметр с именем newOrExisting. Развертывание использует этот параметр для определения того, нужно ли создавать новую учетную запись хранения или использовать имеющуюся.

Вот что нужно сделать, чтобы внести изменения:

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

  2. Замените во всем шаблоне variables('storageAccountName') на parameters('storageAccountName') .

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

    Снимок экрана с выделенным определением переменной, которое необходимо удалить.

  4. Добавьте следующие два параметра в начало раздела параметров:

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

    Нажмите клавиши ALT+SHIFT+F, чтобы отформатировать шаблон в Visual Studio Code.

    Определение обновленных параметров выглядит так:

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

  5. Добавьте следующую строку в начало определения учетной записи хранения.

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

    Условие проверяет значение параметра newOrExisting. Если значение параметра равно new, то в результате развертывания создается учетная запись хранения.

    Обновленное определение учетной записи хранения выглядит так:

    Снимок экрана, на котором показано обновленное определение учетной записи хранения.

  6. Обновите свойство storageUri определения ресурса виртуальной машины следующим значением:

    "storageUri": "[format('https://{0}.blob.core.windows.net', parameters('storageAccountName'))]"
    

    Это изменение необходимо при использовании существующей учетной записи хранения с другой группой ресурсов.

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

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

  1. Войдите в Cloud Shell.

  2. В левом верхнем углу выберите используемую среду — PowerShell или Bash (для CLI). После переключения желательно перезагрузить оболочку.

    Файл отправки Cloud Shell на портале Azure

  3. Выберите Отправка и скачивание файлов, а затем Отправить. См. предыдущий снимок экрана. Выберите файл, сохраненный ранее. После отправки вы можете с помощью команд ls и cat проверить, успешно отправлен ли файл.

  4. а затем выполните следующий сценарий PowerShell для его развертывания.

    Важно!

    Имя учетной записи хранения должно быть уникальным в среде Azure. Имя должно содержать только строчные буквы или цифры. Оно должно содержать не больше 24 знаков. Имя учетной записи хранения — это имя проекта, к которому добавлено слово store. Убедитесь, что имя проекта и созданное имя учетной записи хранения соответствуют требованиям к имени учетной записи хранения.

    $projectName = Read-Host -Prompt "Enter a project name that is used to generate resource group name and resource names"
    $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"
    
    $resourceGroupName = "${projectName}rg"
    $storageAccountName = "${projectName}store"
    
    New-AzResourceGroup -Name $resourceGroupName -Location $location
    New-AzResourceGroupDeployment `
        -ResourceGroupName $resourceGroupName `
        -adminUsername $vmAdmin `
        -adminPassword $vmPassword `
        -dnsLabelPrefix $dnsLabelPrefix `
        -storageAccountName $storageAccountName `
        -newOrExisting $newOrExisting `
        -TemplateFile "$HOME/azuredeploy.json"
    
    Write-Host "Press [ENTER] to continue ..."
    

    Примечание

    Развертывание завершается сбоем, если newOrExistingnew, а учетная запись хранения с указанным именем уже существует.

Попробуйте выполнить другое развертывания, задав для newOrExisting значение existing и указав имеющуюся учетную запись хранения. Чтобы создать учетную запись хранения, обратитесь к этой статье.

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

Если ресурсы Azure больше не нужны, их можно удалить. Для этого необходимо удалить группу ресурсов. Для удаления группы ресурсов выберите Попробовать, чтобы открыть Cloud Shell. Чтобы вставить сценарий PowerShell, щелкните панель оболочки правой кнопкой мыши и выберите Вставить.

$projectName = Read-Host -Prompt "Enter the same project name you used in the last procedure"
$resourceGroupName = "${projectName}rg"

Remove-AzResourceGroup -Name $resourceGroupName

Write-Host "Press [ENTER] to continue ..."

Дальнейшие действия

В этом руководстве описано, как разработать шаблон, позволяющий пользователю выбирать между созданием учетной записи хранения и использованием существующей. Чтобы узнать, как получать секреты из Azure Key Vault и использовать их в шаблоне развертывания в качестве паролей, обратитесь к статье: