Упражнение. Создание и развертывание шаблона 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 уже включает множество фрагментов кода, которые можно использовать для создания шаблонов. Начнем с добавления пустого шаблона. В первой строке файла введите arm.

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

    Visual Studio Code azuredeploy.json file showing the snippet choices for Azure Resource Manager templates.

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

    {
      "$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. В противном случае выберите раскрывающийся список и выберите " Выбрать профиль по умолчанию".

    Screenshot of the Visual Studio Code terminal window with bash in the drop-down.

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

    Screenshot of the Visual Studio Code terminal window showing the select shell drop-down.

  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, у вас есть правильная оболочка для работы, и вы можете перейти к следующему разделу.

    Screenshot of the Visual Studio Code terminal window with pwsh terminal selected.

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

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

      Screenshot of the Visual Studio Code terminal window showing the select shell drop-down.

    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 и скопируйте значение во втором столбце. Выглядит примерно так, как cf49fbbc-217c-4eb6-9eb5-a6a6c68295a0:

    Get-AzSubscription
    
  2. Выполните следующую команду, заменив {Your subscription ID} на идентификатор, скопированный на предыдущем шаге, чтобы изменить активную подписку на подписку 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 portal interface for the resource group overview with the deployments section showing that one succeeded.

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

    Azure portal interface for the deployments with the one deployment listed and a succeeded status.

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

    Azure portal interface for the specific deployment with no resources listed.

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

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

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

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

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

    Visual Studio Code arm-storage snippet shown under the typed word storage.

    Ваш файл теперь должен выглядеть следующим образом.

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

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

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

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

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

    Screenshot of Visual Studio Code showing the IntelliSense choices for the name attribute of the storage 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 успешных развертывания. Нажмите эту ссылку.

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

    Screenshot of the Azure portal interface for the deployments with the two deployments listed and succeeded statuses.

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

    Screenshot of the Azure portal interface for the specific deployment with one resource listed.

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