Упражнение. Создание и развертывание шаблона Azure Resource Manager

Завершено

Примечание.

Когда вы в первый раз активируете песочницу и принимаете условия, ваша учетная запись Майкрософт связывается с новым каталогом Azure с именем Microsoft Learn Sandbox. Вы также добавлены к специальной подписке под названием Concierge Subscription.

В этом упражнении вы создадите шаблон Azure Resource Manager (ARM), разверните его в Azure, а затем обновите этот шаблон ARM, чтобы добавить параметры и выходные данные.

В этом упражнении используются средства Azure Resource Manager для Visual Studio Code. Не забудьте установить это расширение в Visual Studio Code перед выполнением упражнения.

Создание шаблона ARM

  1. Откройте Visual Studio Code и создайте новый файл с именем azuredeploy.json.

  2. Расширение шаблонов ARM Visual Studio Code уже включает множество фрагментов кода, которые можно использовать для создания шаблонов. Начнем с добавления пустого шаблона. В строке 1 файла введите руку.

  3. Visual Studio Code автоматически отображает несколько возможных вариантов, которые начинаются с arm!. Выберите Шаблон Azure Resource Manager (ARM). Visual Studio Code автоматически обрабатывает схемы и языки шаблона.

    Файл azuredeploy.json Visual Studio Code со списком фрагментов кода для шаблонов Azure Resource Manager

    Теперь файл выглядит следующим образом:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {},
      "functions": [],
      "variables": {},
      "resources": [],
      "outputs": {}
    }
    

    Обратите внимание на то, что в этом файле есть все разделы шаблона ARM, которые описывались в предыдущем уроке.

  4. Сохраните изменения в файле, нажав комбинацию клавиш CTRL + S.

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

Чтобы развернуть этот шаблон в Azure, необходимо войти в свою учетную запись Azure из терминала Visual Studio Code. Убедитесь, что на компьютере установлены инструменты Azure CLI, и выполните вход под той же учетной записью, которую вы использовали для активации песочницы.

  1. Выберите Терминал > Новый терминал, чтобы открыть окно терминала.

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

  3. В противном случае выберите раскрывающийся список и выберите " Выбрать профиль по умолчанию".

    Снимок экрана: окно терминала Visual Studio Code с bash в раскрывающемся списке.

  4. Выберите Git Bash.

    Снимок экрана: окно терминала Visual Studio Code с раскрывающимся списком выбранной оболочки.

  5. Выберите Терминал > Новый терминал, чтобы открыть окно терминала с оболочкой bash.

Вход в Azure

  1. В окне терминала выполните следующую команду, чтобы войти в Azure.

    az login
    
  2. В открывшемся окне браузера войдите в свою учетную запись. После входа в терминал отображается список подписок, связанных с этой учетной записью. Если вы активировали песочницу, должна появиться подписка с именем Подписка Concierge. Именно ее вы будете использовать в оставшейся части упражнения.

  3. В оболочке bash выполните следующую команду, чтобы задать подписку по умолчанию для всех команд Azure CLI, выполняемых в этом сеансе.

    az account set --subscription "Concierge Subscription"
    

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

    1. Выполните следующую команду, чтобы получить идентификаторы подписок Concierge.
     az account list \
       --refresh \
       --query "[?contains(name, 'Concierge Subscription')].id" \
       --output table
    
    1. Задайте подписку по умолчанию, выполнив следующую команду, заменив {your subscription ID} на идентификатор последней подписки Concierge.
    az account set --subscription {your subscription ID}
    

Установка группы ресурсов по умолчанию

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

az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"

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

Для развертывания шаблона ARM в Azure выполните следующие команды. Шаблон ARM еще не имеет ресурсов, поэтому отсутствуют ресурсы. Вы должны получить успешное развертывание.

templateFile="azuredeploy.json"
today=$(date +"%d-%b-%Y")
DeploymentName="blanktemplate-"$today

az deployment group create \
 --name $DeploymentName \
 --template-file $templateFile

Верхний раздел этого кода определяет переменные Azure CLI, которые включают путь к развертываемому файлу шаблона и имя развертывания. В нижнем разделе az deployment group create развертывается шаблон в Azure. Обратите внимание, что имя развертывания имеет blanktemplate дату суффикса.

Вы должны увидеть Running... в терминале.

Чтобы развернуть этот шаблон в Azure, необходимо войти в свою учетную запись Azure из терминала Visual Studio Code. Убедитесь, что средства Azure PowerShell устанавливаются из расширений Visual Studio Code и войдите в ту же учетную запись, которая активировала песочницу.

  1. На панели команд выберите Терминал > Новый терминал, чтобы открыть окно PowerShell.

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

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

    1. В противном случае щелкните стрелку вниз и в раскрывающемся списке и выберите PowerShell. Если этот параметр отсутствует, выберите пункт Выбрать профиль по умолчанию.

    2. В поле ввода прокрутите вниз и выберите PowerShell.

      Снимок экрана: окно терминала Visual Studio Code с раскрывающимся списком выбранной оболочки.

    3. Выберите Терминал > Новый терминал, чтобы открыть окно терминала с оболочкой PowerShell.

Вход в Azure с помощью Azure PowerShell

  1. В окне терминала Visual Studio Code выполните следующую команду, чтобы войти в Azure. Откроется браузер, в котором можно выполнить вход в учетную запись.

    Connect-AzAccount
    

    Совет

    Модуль Az PowerShell является заменой AzureRM и является рекомендуемой версией, используемой для взаимодействия с Azure.

  2. Войдите, используя учетную запись, которая использовалась для активации песочницы. После входа Visual Studio Code выводит список подписок, связанных с учетной записью в окне терминала. Если вы активировали песочницу, вы увидите блок кода, содержащий "name": "Concierge Subscription". Эта подписка используется для остальных упражнений.

Задание подписки по умолчанию для всех команд PowerShell в этом сеансе

  1. Выполните следующую команду, чтобы получить подписки и их идентификаторы. Идентификатор подписки находится во втором столбце. Найдите подписку Concierge и скопируйте значение во втором столбце. Он выглядит примерно так, как aaaa0a0a-bb1b-cc2c-dd3d-eeee4e4e4e4e4e4e4e:

    Get-AzSubscription
    
  2. Выполните следующую команду, заменив {Ваш идентификатор подписки} на скопированную на предыдущем шаге. Эта команда изменяет активную подписку на подписку Concierge.

    $context = Get-AzSubscription -SubscriptionId {Your subscription ID}
    Set-AzContext $context
    
  3. Выполните следующую команду, чтобы сделать группу ресурсов, созданную для вас в среде песочницы, группой ресурсов по умолчанию. В таком случае вы сможете не указывать этот параметр в остальных командах Azure PowerShell в этом упражнении.

    Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    

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

Разверните шаблон в Azure, выполнив следующие команды. Шаблон ARM еще не имеет ресурсов, поэтому отсутствуют ресурсы.

$templateFile="azuredeploy.json"
$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="blanktemplate-"+"$today"
New-AzResourceGroupDeployment `
  -Name $deploymentName `
  -TemplateFile $templateFile

В верхнем разделе предыдущего кода задаются переменные Azure PowerShell, в том числе путь к файлу развертывания и имени развертывания. Команда New-AzResourceGroupDeployment развертывает шаблон в Azure. Обратите внимание, что имя развертывания имеет blanktemplate дату суффикса.

При развертывании шаблона ARM в Azure перейдите к портал Azure и убедитесь, что вы находитесь в подписке песочницы. Для этого щелкните свой аватар в правом верхнем углу страницы. Выберите Переключить каталог. В списке выберите каталог Песочница Microsoft Learn.

  1. В меню ресурсов выберите Группы ресурсов.

  2. Выберите группу ресурсов [имя группы ресурсов песочницы].

  3. В области Обзор вы увидите, что одно развертывание выполнено успешно.

    Интерфейс портала Azure с обзором группы ресурсов: в разделе развертываний показано одно успешное развертывание

  4. Щелкните ссылку 1 Succeeded (1 успешное), чтобы просмотреть сведения об этом развертывании.

    Интерфейс портала Azure для развертываний с одним успешным развертыванием

  5. Выберите blanktemplate, чтобы увидеть, какие ресурсы были развернуты. В этом случае это пусто, так как вы еще не указали какие-либо ресурсы в шаблоне.

    Интерфейс портала Azure, показывающий конкретное развертывание без ресурсов

  6. Оставьте страницу открытой в браузере, чтобы снова проверить развертывания.

Добавление ресурса в шаблон ARM

В предыдущей задаче вы научились создавать пустой шаблон и развертывать его. Теперь вы готовы развернуть настоящий ресурс. В этой задаче вы добавите ресурс учетной записи хранения Azure в шаблон ARM с помощью фрагмента из расширения средств Azure Resource Manager для Visual Studio Code.

  1. В файле azuredeploy.json в Visual Studio Code поместите указатель между квадратными скобками в блоке ресурсов "resources":[],.

  2. Введите в квадратных скобках storage. Появится список связанных фрагментов кода. Выберите arm-storage.

    Фрагмент кода хранилища Visual Studio Code azure Resource Manager, показанный в типизированном хранилище слов.

    Файл выглядит следующим образом:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {},
      "functions": [],
      "variables": {},
      "resources": [
        {
          "type": "Microsoft.Storage/storageAccounts",
          "apiVersion": "2023-05-01",
          "name": "storageaccount1",
          "tags": {
            "displayName": "storageaccount1"
          },
          "location": "[resourceGroup().location]",
          "kind": "StorageV2",
          "sku": {
            "name": "Premium_LRS"
          }
        }
      ],
      "outputs": {}
    }
    

    Значения, которые следует изменить, выделены в новом разделе файла, и их можно перемещать, нажав клавишу TAB .

    Обратите внимание, что атрибуты tags и location заполнены. В атрибуте location используется функция, устанавливающая расположение группы ресурсов в качестве расположения ресурса. Теги и функции рассматриваются в следующем модуле.

  3. Измените значения имени ресурса и displayName на что-то уникальное (например, learnexercise12321). Это имя должно быть уникальным во всей области Azure, поэтому выбирайте что-нибудь уникальное для вас.

  4. Измените значение name для SKU с Premium_LRS на Standard_LRS. Измените значение tier на Standard. Обратите внимание на то, что Visual Studio Code предлагает соответствующие варианты для значений атрибутов по мере ввода. Удалите значение по умолчанию вместе с кавычками и введите кавычки, чтобы посмотреть, как это работает.

    Снимок экрана: Visual Studio Code, показывающий варианты IntelliSense для атрибута имени номера SKU хранилища.

  5. Расположение ресурса установлено в том же расположении, что и группа ресурсов, в которой развернут ресурс. Оставьте значение по умолчанию.

  6. Сохраните файл.

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

Теперь измените имя развертывания, чтобы оно лучше отражало то, что это развертывание делает.

В терминале выполните следующие команды Azure CLI. Вы уже использовали этот фрагмент кода ранее, но имя развертывания изменилось.

templateFile="azuredeploy.json"
today=$(date +"%d-%b-%Y")
DeploymentName="addstorage-"$today

az deployment group create \
  --name $DeploymentName \
  --template-file $templateFile

В терминале выполните следующие команды Azure PowerShell. Вы уже использовали этот фрагмент кода ранее, но имя развертывания изменилось.

$templateFile="azuredeploy.json"
$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="addstorage-"+"$today"
New-AzResourceGroupDeployment `
  -Name $deploymentName `
  -TemplateFile $templateFile

Проверка развертывания

  1. По завершении развертывания вернитесь к портал Azure в браузере. Перейдите в группу ресурсов и увидите, что теперь развернуто 2 успешно . Нажмите эту ссылку.

    Обратите внимание, что в списке присутствуют оба развертывания.

    Снимок экрана: интерфейс портал Azure для развертываний с двумя перечисленными и успешными состояниями.

  2. Выберите развертывание addstorage.

    Снимок экрана: интерфейс портал Azure для конкретного развертывания с одним ресурсом, перечисленным.

Обратите внимание, что учетная запись хранения развернута.