Упражнение. Определение дочерних ресурсов
Примечание.
Когда вы в первый раз активируете песочницу и принимаете условия, ваша учетная запись Майкрософт связывается с новым каталогом 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. Для этого:
Откройте Visual Studio Code.
Создайте файл с именем main.bicep.
Сохраните пустой файл, куда Visual Studio Code загрузит средства Bicep.
Можно выбрать Файл>Сохранить как или нажать клавиши CTRL+S в Windows (⌘+S в macOS). Не забудьте помнить, где сохранен файл. Например, можно создать для него папку scripts.
Добавьте в этот файл содержимое ниже. Рекомендуется ввести его вручную, а не скопировать и вставить. Таким образом вы сможете увидеть, как инструменты помогают создавать содержимое 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, которая является родительским ресурсом, который вы используете в следующем разделе.
Сохраните изменения в файле.
Добавление базы данных
Создайте базу данных, которая является дочерним ресурсом учетной записи Azure Cosmos DB.
В начале файла, между двумя указанными параметрами, добавьте следующий параметр:
param cosmosDBDatabaseThroughput int = 400
Под объявлениями параметров добавьте следующую переменную:
var cosmosDBDatabaseName = 'FlightTests'
Добавьте приведенное ниже определение ресурса в конец файла, под определением ресурса учетной записи 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, указанной явным образом.Сохраните изменения в файле.
Добавление контейнера
Теперь добавьте еще один дочерний ресурс. На этот раз вы добавите его в качестве вложенного ресурса вместо использования parent
свойства.
В начале файла, под определением переменной
cosmosDBDatabaseName
, добавьте следующие переменные:var cosmosDBContainerName = 'FlightTests' var cosmosDBContainerPartitionKey = '/droneId'
В конце файла, в определении ресурса базы данных и перед закрывающей фигурной скобкой (
}
), добавьте следующее определение вложенного ресурса: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 использует версию из родительского ресурса.Сохраните изменения в файле.
Проверьте ваш файл 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, и необходимо войти под той же учетной записью, с которой вы активировали песочницу.
В меню Терминал выберите Новый терминал. Окно терминала обычно открывается в нижней половине экрана.
Если окно терминала отображает bash справа , это означает, что правильная оболочка уже открыта. Кроме того, если вы видите значок оболочки Bash справа, его можно выбрать для запуска оболочки.
Если появится оболочка, отличной от bash , выберите стрелку раскрывающегося списка оболочки и выберите Git Bash.
Перейдите в терминале в каталог, где сохранили свой шаблон. Например, если вы сохранили его в папке templates, можно использовать следующую команду:
cd templates
Установка Bicep
Выполните следующую команду, чтобы убедиться, что у вас установлена последняя версия Bicep:
az bicep install && az bicep upgrade
Вход в Azure
В окне терминала Visual Studio Code войдите в Azure, выполнив следующую команду:
az login
В открывшемся браузере войдите в свою учетную запись Azure. Терминал Visual Studio Code отобразит список подписок, связанных с данной учетной записью. Выберите подписку с именем "Подписка Concierge".
Если вы недавно использовали несколько песочниц, в терминале может отображаться несколько экземпляров подписки Concierge. В этом случае для установки подписки по умолчанию выполните указанные ниже два шага.
Получите идентификаторы подписок Concierge.
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Задайте подписку по умолчанию, используя идентификатор подписки. Замените строку {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, и войдите в ту же учетную запись, которая активировала песочницу.
В меню Терминал выберите Новый терминал. Окно терминала обычно открывается в нижней половине экрана.
Если окно терминала отображает pwsh или powershell справа, это означает, что правильная оболочка уже открыта. Кроме того, если вы видите значок оболочки PowerShell справа, его можно выбрать для запуска оболочки.
Если появится оболочка, отличной от pwsh или PowerShell , выберите стрелку раскрывающегося списка оболочки и выберите PowerShell.
Перейдите в терминале в каталог, где сохранили свой шаблон. Например, если вы сохранили его в папке templates, можно использовать следующую команду:
Set-Location -Path templates
Установите Bicep CLI
Чтобы использовать Bicep из Azure PowerShell, установите Bicep CLI.
Вход в Azure с помощью Azure PowerShell
В окне терминала Visual Studio Code выполните следующую команду:
Connect-AzAccount
Откроется браузер, в котором вы можете выполнить вход в учетную запись Azure. Браузер может быть открыт в фоновом режиме.
После входа в Azure в окне терминала появится список подписок, связанных с этой учетной записью. Если вы активировали песочницу, отобразится подписка с именем Подписка Concierge. Выберите его для остальной части упражнения.
Если вы недавно использовали несколько песочниц, в терминале может отображаться несколько экземпляров подписки Concierge. В этом случае для установки подписки по умолчанию выполните указанные ниже два шага.
Получите идентификатор подписки. Следующая команда выдаст список ваших подписок с идентификаторами. Найдите
Concierge Subscription
, а затем скопируйте идентификатор из второго столбца. Оно будет выглядеть примерно так —aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.Get-AzSubscription
Измените активную подписку на подписку 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
Проверка развертывания
Перейдите на портал Azure и убедитесь, что вы находитесь в подписке песочницы:
Выберите свой аватар в правом верхнем углу страницы.
Выберите Переключить каталог. В списке выберите каталог Песочница Microsoft Learn.
На домашней странице выберите элемент Группы ресурсов. Появится область группы ресурсов.
Выберите "
[имя группы ресурсов песочницы] "В разделе Обзор вы можете увидеть, что одно развертывание выполнено успешно.
Щелкните ссылку 1 Succeeded (1 успешное), чтобы просмотреть сведения об этом развертывании.
Нажмите развертывание с именем main, чтобы увидеть, какие ресурсы развернуты, а затем выберите Сведения о развертывании, чтобы развернуть и просмотреть раздел. В нашем случае вы увидите здесь учетную запись Cosmos DB, базу данных и контейнер.
Оставьте страницу открытой в браузере, чтобы снова проверить развертывания.