Руководство по созданию шаблонов Resource Manager с зависимыми ресурсами

Узнайте, как создать шаблон Azure Resource Manager для развертывания нескольких ресурсов и настроить порядок развертывания. После создания шаблон можно развернуть с помощью Cloud Shell, используя портал Azure.

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

Схема, показывющая порядок развертывания зависимых ресурсов в шаблоне Resource Manager.

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

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

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

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

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

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

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

Шаблоны быстрого запуска 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. Выберите Файл>Сохранить как, чтобы сохранить файл на локальный компьютер с именем azuredeploy.json.

Обзор шаблона

Рассматривая шаблон в этом разделе, постарайтесь ответить на следующие вопросы:

  • Сколько ресурсов Azure определено в этом шаблоне?
  • Одним из ресурсов является учетная запись хранения Azure. Похоже ли это определение на использованное в предыдущем руководстве?
  • Можете ли вы найти справочники по шаблонам для ресурсов, определенных в этом шаблоне?
  • Можете ли вы найти зависимости ресурсов?
  1. В Visual Studio Code сверните элементы, пока не появятся элементы только первого уровня и элементы второго уровня внутри resources.

    Снимок экрана: Visual Studio Code с шаблоном ARM с свернутыми элементами.

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

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

    Снимок экрана: Visual Studio Code с определением учетной записи хранения в шаблоне ARM.

  3. Разверните второй ресурс. В качестве типа ресурса используйте Microsoft.Network/publicIPAddresses. Сравните определение ресурса с определением в справочнике по шаблону.

    Снимок экрана: Visual Studio Code с определением общедоступного IP-адреса в шаблоне ARM.

  4. Разверните третий ресурс. В качестве типа ресурса используйте Microsoft.Network/networkSecurityGroups. Сравните определение ресурса с определением в справочнике по шаблону.

    Снимок экрана: Visual Studio Code с определением группы безопасности сети в шаблоне ARM.

  5. Разверните четвертый ресурс: В качестве типа ресурса используйте Microsoft.Network/virtualNetworks.

    Снимок экрана: Visual Studio Code с определением виртуальной сети с элементом dependsOn в шаблоне ARM.

    Элемент dependsOn позволяет определить один ресурс как зависимый от одного или нескольких ресурсов. Этот ресурс зависит от одного из этих ресурсов:

    • Microsoft.Network/networkSecurityGroups
  6. Разверните пятый ресурс. В качестве типа ресурса используйте Microsoft.Network/networkInterfaces. Этот ресурс зависит от двух других ресурсов:

    • Microsoft.Network/publicIPAddresses
    • Microsoft.Network/virtualNetworks
  7. Разверните шестой ресурс. Этот ресурс — это виртуальная машина. Он зависит от двух других ресурсов:

    • Microsoft.Storage/storageAccounts
    • Microsoft.Network/networkInterfaces

На следующей схеме приведены ресурсы и информация о зависимости для этого шаблона.

Схема, показывающая связи зависимостей между ресурсами в шаблоне ARM, отображаемом в Visual Studio Code.

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

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

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

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

    Снимок экрана: портал Azure Cloud Shell с выделенным параметром отправки файла.

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

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

    echo "Enter a project name that is used to generate resource group name:" &&
    read projectName &&
    echo "Enter the location (i.e. centralus):" &&
    read location &&
    echo "Enter the virtual machine admin username:" &&
    read adminUsername &&
    echo "Enter the DNS label prefix:" &&
    read dnsLabelPrefix &&
    resourceGroupName="${projectName}rg" &&
    az group create --name $resourceGroupName --location $location &&
    az deployment group create --resource-group $resourceGroupName --template-file "$HOME/azuredeploy.json" --parameters adminUsername=$adminUsername dnsLabelPrefix=$dnsLabelPrefix
    
  5. RDP-подключение к виртуальной машине для ее проверки успешно установлено.

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

Если ресурсы Azure больше не нужны, их можно удалить. Для этого необходимо удалить группу ресурсов.

  1. На портале Azure в меню слева выберите Группа ресурсов.
  2. В поле Фильтровать по имени введите имя группы ресурсов.
  3. Выберите имя группы ресурсов. В группе ресурсов должно появиться шесть ресурсов.
  4. В главном меню выберите Удалить группу ресурсов.

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

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