Упражнение. Определение дочерних ресурсов

Завершено

Примечание.

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

Вы начинаете работать с запросами команды исследований и разработки и решили начать с создания базы данных Azure Cosmos DB для хранения данных тестирования игрушечных дронов. В этом упражнении вы создадите учетную запись Azure Cosmos DB и два дочерних ресурса, один с помощью parent свойства и другого в качестве вложенного ресурса.

Во время процесса вы:

  • Создайте файл Bicep, который развертывает учетную запись Cosmos DB.
  • Добавьте базу данных и контейнер, которые являются дочерними ресурсами учетной записи Cosmos DB.
  • Разверните шаблон и проверьте развертывание.

В этом упражнении используется расширение Bicep для Visual Studio Code. Убедитесь, что это расширение установлено в Visual Studio Code.

Создание шаблона Bicep, содержащего учетную запись Azure Cosmos DB

Сначала следует создать шаблон Bicep с учетной записью Azure Cosmos DB. Для этого:

  1. Откройте Visual Studio Code.

  2. Создайте файл с именем main.bicep.

  3. Сохраните пустой файл, куда Visual Studio Code загрузит средства Bicep.

    Можно выбрать Файл>Сохранить как или нажать клавиши CTRL+S в Windows (⌘+S в macOS). Не забудьте помнить, где сохранен файл. Например, можно создать для него папку scripts.

  4. Добавьте в этот файл содержимое ниже. Рекомендуется ввести его вручную, а не скопировать и вставить. Таким образом вы сможете увидеть, как инструменты помогают создавать содержимое BICEP-файлов.

    param cosmosDBAccountName string = 'toyrnd-${uniqueString(resourceGroup().id)}'
    param location string = resourceGroup().location
    
    resource cosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2024-11-15' = {
      name: cosmosDBAccountName
      location: location
      properties: {
        databaseAccountOfferType: 'Standard'
        locations: [
          {
            locationName: location
          }
        ]
      }
    }
    

    Совет

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

    Этот шаблон Bicep развертывает учетную запись Azure Cosmos DB, которая является родительским ресурсом, который вы используете в следующем разделе.

  5. Сохраните изменения в файле.

Добавление базы данных

Создайте базу данных, которая является дочерним ресурсом учетной записи Azure Cosmos DB.

  1. В начале файла, между двумя указанными параметрами, добавьте следующий параметр:

    param cosmosDBDatabaseThroughput int = 400
    
  2. Под объявлениями параметров добавьте следующую переменную:

    var cosmosDBDatabaseName = 'FlightTests'
    
  3. Добавьте приведенное ниже определение ресурса в конец файла, под определением ресурса учетной записи Azure Cosmos DB.

    resource cosmosDBDatabase 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2024-11-15' = {
      parent: cosmosDBAccount
      name: cosmosDBDatabaseName
      properties: {
        resource: {
          id: cosmosDBDatabaseName
        }
        options: {
          throughput: cosmosDBDatabaseThroughput
        }
      }
    }
    

    Обратите внимание на то, что этот код развертывает базу данных, которая является дочерним ресурсом, с помощью свойства parent. Также обратите внимание, что код использует полный тип ресурса с версией API, указанной явным образом.

  4. Сохраните изменения в файле.

Добавление контейнера

Теперь добавьте еще один дочерний ресурс. На этот раз вы добавите его в качестве вложенного ресурса вместо использования parent свойства.

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

    var cosmosDBContainerName = 'FlightTests'
    var cosmosDBContainerPartitionKey = '/droneId'
    
  2. В конце файла, в определении ресурса базы данных и перед закрывающей фигурной скобкой (}), добавьте следующее определение вложенного ресурса:

    resource container 'containers' = {
      name: cosmosDBContainerName
      properties: {
        resource: {
          id: cosmosDBContainerName
          partitionKey: {
            kind: 'Hash'
            paths: [
              cosmosDBContainerPartitionKey
            ]
          }
        }
        options: {}
      }
    }
    

    Обратите внимание, что вы использовали короткий тип ресурса, containersтак как Bicep понимает, что он относится к родительскому типу ресурса. Bicep знает, что полный тип ресурса — Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers. Вы не указали версию API, поэтому Bicep использует версию из родительского ресурса.

  3. Сохраните изменения в файле.

Проверьте ваш файл Bicep

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

param cosmosDBAccountName string = 'toyrnd-${uniqueString(resourceGroup().id)}'
param cosmosDBDatabaseThroughput int = 400
param location string = resourceGroup().location

var cosmosDBDatabaseName = 'FlightTests'
var cosmosDBContainerName = 'FlightTests'
var cosmosDBContainerPartitionKey = '/droneId'

resource cosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2024-11-15' = {
  name: cosmosDBAccountName
  location: location
  properties: {
    databaseAccountOfferType: 'Standard'
    locations: [
      {
        locationName: location
      }
    ]
  }
}

resource cosmosDBDatabase 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2024-11-15' = {
  parent: cosmosDBAccount
  name: cosmosDBDatabaseName
  properties: {
    resource: {
      id: cosmosDBDatabaseName
    }
    options: {
      throughput: cosmosDBDatabaseThroughput
    }
  }

  resource container 'containers' = {
    name: cosmosDBContainerName
    properties: {
      resource: {
        id: cosmosDBContainerName
        partitionKey: {
          kind: 'Hash'
          paths: [
            cosmosDBContainerPartitionKey
          ]
        }
      }
      options: {}
    }
  }
}

Если это не так, скопируйте пример или измените шаблон в соответствии с примером.

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

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

  1. В меню Терминал выберите Новый терминал. Окно терминала обычно открывается в нижней половине экрана.

  2. Если окно терминала отображает bash справа , это означает, что правильная оболочка уже открыта. Кроме того, если вы видите значок оболочки Bash справа, его можно выбрать для запуска оболочки.

    Снимок экрана: окно терминала Visual Studio Code с bash.

    Если появится оболочка, отличной от bash , выберите стрелку раскрывающегося списка оболочки и выберите Git Bash.

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

  3. Перейдите в терминале в каталог, где сохранили свой шаблон. Например, если вы сохранили его в папке templates, можно использовать следующую команду:

    cd templates
    

Установка Bicep

Выполните следующую команду, чтобы убедиться, что у вас установлена последняя версия Bicep:

az bicep install && az bicep upgrade

Вход в Azure

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

    az login
    
  2. В открывшемся браузере войдите в свою учетную запись Azure. Терминал Visual Studio Code отобразит список подписок, связанных с данной учетной записью. Выберите подписку с именем "Подписка Concierge".

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

    1. Получите идентификаторы подписок Concierge.

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

      az account set --subscription {your subscription ID}
      

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

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

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

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

Запустите следующий код из терминала в Visual Studio Code, чтобы развернуть шаблон Bicep в Azure. Эта операция может занять минуту или два, прежде чем вы увидите успешное развертывание.

az deployment group create --name main --template-file main.bicep

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

  1. В меню Терминал выберите Новый терминал. Окно терминала обычно открывается в нижней половине экрана.

  2. Если окно терминала отображает pwsh или powershell справа, это означает, что правильная оболочка уже открыта. Кроме того, если вы видите значок оболочки PowerShell справа, его можно выбрать для запуска оболочки.

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

    Если появится оболочка, отличной от pwsh или PowerShell , выберите стрелку раскрывающегося списка оболочки и выберите PowerShell.

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

  3. Перейдите в терминале в каталог, где сохранили свой шаблон. Например, если вы сохранили его в папке templates, можно использовать следующую команду:

    Set-Location -Path templates
    

Установите Bicep CLI

Чтобы использовать Bicep из Azure PowerShell, установите Bicep CLI.

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

  1. В окне терминала Visual Studio Code выполните следующую команду:

    Connect-AzAccount
    

    Откроется браузер, в котором вы можете выполнить вход в учетную запись Azure. Браузер может быть открыт в фоновом режиме.

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

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

    1. Получите идентификатор подписки. Следующая команда выдаст список ваших подписок с идентификаторами. Найдите Concierge Subscription, а затем скопируйте идентификатор из второго столбца. Оно будет выглядеть примерно так — aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e.

      Get-AzSubscription
      
    2. Измените активную подписку на подписку Concierge. Обязательно замените заполнитель {Your subscription ID} (Ваш идентификатор подписки) идентификатором, который вы скопировали.

      $context = Get-AzSubscription -SubscriptionId {Your subscription ID}
      Set-AzContext $context
      

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

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

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

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

Разверните шаблон в Azure, выполнив следующие команды Azure PowerShell в терминале. Эта операция может занять минуту или два, прежде чем вы увидите успешное развертывание.

New-AzResourceGroupDeployment -Name main -TemplateFile main.bicep

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

  1. Перейдите на портал Azure и убедитесь, что вы находитесь в подписке песочницы:

    1. Выберите свой аватар в правом верхнем углу страницы.

    2. Выберите Переключить каталог. В списке выберите каталог Песочница Microsoft Learn.

  2. На домашней странице выберите элемент Группы ресурсов. Появится область группы ресурсов.

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

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

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

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

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

  6. Нажмите развертывание с именем main, чтобы увидеть, какие ресурсы развернуты, а затем выберите Сведения о развертывании, чтобы развернуть и просмотреть раздел. В нашем случае вы увидите здесь учетную запись Cosmos DB, базу данных и контейнер.

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

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