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


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

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

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

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

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

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

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

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

Необходимые компоненты

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

  • Visual Studio Code с расширением средств Resource Manager. Дополнительные сведения см. в статье Краткое руководство. Создание шаблонов ARM с помощью Visual Studio Code.

  • Для повышения уровня безопасности используйте пароль, созданный для учетной записи администратора виртуальной машины. Azure Cloud Shell можно использовать для выполнения следующей команды в PowerShell или Bash:

    openssl rand -base64 32
    

    Чтобы узнать больше, выполните команду man openssl rand и откройте страницу вручную.

    Для защиты криптографических ключей и других секретов используйте Azure Key Vault. Дополнительные сведения см. в статье Учебник. Интеграция с Azure Key Vault при развертывании шаблона ARM. Мы также рекомендуем обновлять пароль каждые три месяца.

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

Шаблоны быстрого запуска Azure — это репозиторий для шаблонов Resource Manager. Вместо создания шаблона с нуля можно найти пример шаблона и настроить его. Шаблон, используемый в этом руководстве, называется 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. В главном меню выберите Удалить группу ресурсов.

Следующие шаги

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