Учебник по созданию шаблонов Resource Manager с зависимыми ресурсами
Узнайте, как создать шаблон Azure Resource Manager для развертывания нескольких ресурсов и настроить порядок развертывания. После создания шаблона вы развернете его с помощью Azure Cloud Shell из портал Azure.
В рамках этого руководства вы создадите учетную запись хранения, виртуальную машину, виртуальную сеть и другие зависимые ресурсы. Некоторые ресурсы не могут быть развернуты до тех пор, пока другой ресурс не существует. Например, невозможно создать виртуальную машину, пока не существуют ее учетная запись хранения и сетевой интерфейс. Вы определяете эту связь, делая один ресурс зависимым от других ресурсов. Resource Manager оценивает зависимости между ресурсами и развертывает их в зависимом порядке. Если ресурсы не зависят друг от друга, диспетчер ресурсов развертывает их параллельно. Дополнительные сведения см. в статье Определение порядка развертывания ресурсов в шаблонах ARM.
В рамках этого руководства рассматриваются следующие задачи:
- Открытие шаблона быстрого запуска
- Обзор шаблона
- Развертывание шаблона
Если у вас нет подписки 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).
В 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 в меню слева выберите Группа ресурсов.
- В поле Фильтровать по имени введите имя группы ресурсов.
- Выберите имя группы ресурсов. В группе ресурсов отображается всего шесть ресурсов.
- В главном меню выберите Удалить группу ресурсов.
Следующие шаги
В этом руководстве описано, как разработать и развернуть шаблон для создания виртуальной машины, виртуальной сети и зависимых ресурсов. Сведения об использовании скриптов развертывания для выполнения операций до и после развертывания см. в следующих статьях.