Руководство по созданию шаблонов Resource Manager с зависимыми ресурсами
Узнайте, как создать шаблон Azure Resource Manager для развертывания нескольких ресурсов и настроить порядок развертывания. После создания шаблон можно развернуть с помощью Cloud Shell, используя портал Azure.
В рамках этого руководства вы создадите учетную запись хранения, виртуальную машину, виртуальную сеть и другие зависимые ресурсы. Некоторые ресурсы невозможно развернуть до тех пор, пока не будет существовать другой ресурс. Например, невозможно создать виртуальную машину, пока не существуют ее учетная запись хранения и сетевой интерфейс. Эта связь определяется путем пометки зависимости одного ресурса от других. Диспетчер ресурсов оценивает зависимости между ресурсами и развертывает эти ресурсы согласно установленным зависимостям. Если ресурсы не зависят друг от друга, диспетчер ресурсов развертывает их параллельно. Дополнительные сведения см. в статье Определение порядка развертывания ресурсов в шаблонах ARM.
В рамках этого руководства рассматриваются следующие задачи:
- Открытие шаблона быстрого запуска
- Обзор шаблона
- Развертывание шаблона
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись 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 — это репозиторий для шаблонов ARM. Вместо создания шаблона с нуля можно найти пример шаблона и настроить его. Шаблон, используемый в этом руководстве, называется Deploy a simple Windows VM (Развертывание простой виртуальной машины Windows).
В Visual Studio Code выберите Файл>Открыть файл.
Скопируйте приведенный ниже URL-адрес и вставьте его в поле Имя файла.
https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
Чтобы открыть файл, выберите Открыть.
Выберите Файл>Сохранить как, чтобы сохранить файл на локальный компьютер с именем azuredeploy.json.
Обзор шаблона
Рассматривая шаблон в этом разделе, постарайтесь ответить на следующие вопросы:
- Сколько ресурсов Azure определено в этом шаблоне?
- Одним из ресурсов является учетная запись хранения Azure. Похоже ли это определение на использованное в предыдущем руководстве?
- Можете ли вы найти справочники по шаблонам для ресурсов, определенных в этом шаблоне?
- Можете ли вы найти зависимости ресурсов?
В Visual Studio Code сверните элементы, пока не появятся элементы только первого уровня и элементы второго уровня внутри
resources
.Шаблоном определено шесть ресурсов:
Microsoft.Compute/virtualMachines.
Перед настройкой шаблона рекомендуется ознакомиться с его справочником.
Разверните первый ресурс. Это учетная запись хранения. Сравните определение ресурса с определением в справочнике по шаблону.
Разверните второй ресурс. В качестве типа ресурса используйте
Microsoft.Network/publicIPAddresses
. Сравните определение ресурса с определением в справочнике по шаблону.Разверните третий ресурс. В качестве типа ресурса используйте
Microsoft.Network/networkSecurityGroups
. Сравните определение ресурса с определением в справочнике по шаблону.Разверните четвертый ресурс: В качестве типа ресурса используйте
Microsoft.Network/virtualNetworks
.Элемент
dependsOn
позволяет определить один ресурс как зависимый от одного или нескольких ресурсов. Этот ресурс зависит от одного из этих ресурсов:Microsoft.Network/networkSecurityGroups
Разверните пятый ресурс. В качестве типа ресурса используйте
Microsoft.Network/networkInterfaces
. Этот ресурс зависит от двух других ресурсов:Microsoft.Network/publicIPAddresses
Microsoft.Network/virtualNetworks
Разверните шестой ресурс. Этот ресурс — это виртуальная машина. Он зависит от двух других ресурсов:
Microsoft.Storage/storageAccounts
Microsoft.Network/networkInterfaces
На следующей схеме приведены ресурсы и информация о зависимости для этого шаблона.
Путем указания зависимостей диспетчер ресурсов позволяет эффективно развертывать решение. Развертывание учетной записи хранения, общедоступного IP-адреса и виртуальной сети происходит в параллельном режиме, так как они не имеют зависимостей. После развертывания общедоступного IP-адреса и виртуальной сети создается сетевой интерфейс. Когда все ресурсы развернуты, диспетчер ресурсов развертывает виртуальную машину.
Развертывание шаблона
Войдите в Cloud Shell.
В левом верхнем углу выберите используемую среду — PowerShell или Bash (для CLI). После переключения желательно перезагрузить оболочку.
Выберите Отправка и скачивание файлов, а затем Отправить. См. предыдущий снимок экрана. Выберите файл, сохраненный ранее. После отправки вы можете с помощью команд
ls
иcat
проверить, успешно отправлен ли файл.а затем выполните следующий сценарий 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
RDP-подключение к виртуальной машине для ее проверки успешно установлено.
Очистка ресурсов
Если ресурсы Azure больше не нужны, их можно удалить. Для этого необходимо удалить группу ресурсов.
- На портале Azure в меню слева выберите Группа ресурсов.
- В поле Фильтровать по имени введите имя группы ресурсов.
- Выберите имя группы ресурсов. В группе ресурсов должно появиться шесть ресурсов.
- В главном меню выберите Удалить группу ресурсов.
Дальнейшие действия
В этом руководстве описано, как разработать и развернуть шаблон для создания виртуальной машины, виртуальной сети и зависимых ресурсов. Сведения об использовании скриптов развертывания для выполнения операций до и после развертывания см. в следующих статьях.