Упражнение. Создание и развертывание спецификации шаблона
Примечание.
Когда вы в первый раз активируете песочницу и принимаете условия, ваша учетная запись Майкрософт связывается с новым каталогом Azure с именем Microsoft Learn Sandbox. Вы также добавлены к специальной подписке под названием Concierge Subscription.
В вашей компании, ваша команда уже некоторое время работает с Azure, и вы создали множество шаблонов, которые вы используете ежедневно. Вы решили взять один шаблон и создать спецификацию шаблона. Вы начинаете с шаблона, который используете для создания учетных записей Azure Cosmos DB.
Ваша команда решила, что непрерывная архивация должна быть настроена во всех учетных записях Azure Cosmos DB. Поэтому вы хотите включить резервные копии в конфигурацию учетных записей Azure Cosmos DB по умолчанию, подготовленных с помощью спецификации шаблона.
В этом упражнении выполняется публикация шаблона Azure Cosmos DB как спецификации шаблона.
В процессе вы:
- Создайте шаблон, который будет использоваться в как спецификация шаблона.
- Обновите шаблон, чтобы упростить понимание и работу с параметрами.
- Опубликуйте спецификацию шаблона.
- Проверьте спецификацию шаблона с помощью портала Microsoft Azure.
- Разверните спецификацию шаблона, протестировать ее.
- проверка развертывания.
В этом упражнении используется расширение Bicep для Visual Studio Code. Убедитесь, что это расширение установлено в Visual Studio Code.
Создание шаблона
Начните с одного из созданных командой шаблонов. Шаблон развертывает учетную запись Azure Cosmos DB и настраивает ее для включения непрерывного резервного копирования.
Откройте Visual Studio Code.
Создайте файл с именем main.bicep.
Сохраните пустой файл, куда Visual Studio Code загрузит средства Bicep.
Можно выбрать Файл>Сохранить как или нажать клавиши CTRL+S в Windows (⌘+S в macOS). Не забудьте помнить, где сохранен файл. Например, можно создать для него папку scripts.
Скопируйте следующий код в файл main.bicep.
param location string = resourceGroup().location param cosmosDBAccountName string = 'toy-${uniqueString(resourceGroup().id)}' resource cosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2021-04-15' = { name: cosmosDBAccountName kind: 'GlobalDocumentDB' location: location properties: { consistencyPolicy: { defaultConsistencyLevel: 'Session' } locations: [ { locationName: location failoverPriority: 0 isZoneRedundant: false } ] databaseAccountOfferType: 'Standard' enableAutomaticFailover: false enableMultipleWriteLocations: false backupPolicy: { type: 'Continuous' } } }
Обратите внимание, что для параметра
backupPolicy
задано значениеContinuous
. Это значение соответствует настройке постоянного, а не периодического резервного копирования данных Azure Cosmos DB.Сохраните файл.
Откройте Visual Studio Code.
Создайте новый файл с именем azuredeploy.json.
Сохраните пустой файл, чтобы в Visual Studio Code загрузились инструменты создания шаблонов Azure Resource Manager (шаблон ARM).
Можно выбрать Файл>Сохранить как или нажать клавиши CTRL+S в Windows (⌘+S в macOS). Не забудьте помнить, где сохранен файл. Например, можно создать для него папку scripts.
Скопируйте следующий код в файл azuredeploy.json.
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "location": { "type": "string", "defaultValue": "[resourceGroup().location]" }, "cosmosDBAccountName": { "type": "string", "defaultValue": "[concat('toy-', uniqueString(resourceGroup().id))]" } }, "resources": [ { "type": "Microsoft.DocumentDB/databaseAccounts", "apiVersion": "2021-04-15", "name": "[parameters('cosmosDBAccountName')]", "kind": "GlobalDocumentDB", "location": "[parameters('location')]", "properties": { "consistencyPolicy": { "defaultConsistencyLevel": "Session" }, "locations": [ { "locationName": "[parameters('location')]", "failoverPriority": 0, "isZoneRedundant": false } ], "databaseAccountOfferType": "Standard", "enableAutomaticFailover": false, "enableMultipleWriteLocations": false, "backupPolicy": { "type": "Continuous" } } } ] }
Обратите внимание, что для параметра
backupPolicy
задано значениеContinuous
. Это значение соответствует настройке постоянного, а не периодического резервного копирования данных Azure Cosmos DB.Сохраните файл.
Упрощение понимания параметров
При работе с спецификациями шаблонов важно учитывать, как другие пользователи используют шаблон. Эта проверка особенно важна для параметров, так как они являются основным способом взаимодействия других пользователей с кодом. Параметры в шаблоне вашей команды не содержат описаний или других подсказок о том, как их следует использовать, поэтому следует добавить эту информацию здесь.
location
Обновите определение параметра, добавив описание:@description('The Azure region into which the Cosmos DB resources should be deployed.') param location string = resourceGroup().location
Обновите определение параметра
cosmosDBAccountName
, чтобы добавить описание и указать минимальную и максимальную длину имени.@description('The name of the Cosmos DB account. This name must be globally unique, and it must only include lowercase letters, numbers, and hyphens.') @minLength(3) @maxLength(44) param cosmosDBAccountName string = 'toy-${uniqueString(resourceGroup().id)}'
Сохраните файл.
location
Обновите определение параметра, добавив описание:"location": { "type": "string", "defaultValue": "[resourceGroup().location]", "metadata": { "description": "The Azure region into which the Cosmos DB resources should be deployed." } },
Обновите определение параметра
cosmosDBAccountName
, чтобы добавить описание и указать минимальную и максимальную длину имени."cosmosDBAccountName": { "type": "string", "defaultValue": "[concat('toy-', uniqueString(resourceGroup().id))]", "maxLength": 44, "minLength": 3, "metadata": { "description": "The name of the Cosmos DB account. This name must be globally unique, and it must only include lowercase letters, numbers, and hyphens." } }
Сохраните файл.
Вход в 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, войдите в свою учетную запись 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 из терминала Visual Studio Code. У вас также должен быть установлен интерфейс Azure CLI, и необходимо войти под той же учетной записью, с которой вы активировали песочницу.
В меню Терминал выберите Новый терминал. Окно терминала обычно открывается в нижней половине экрана.
Если окно терминала отображает bash справа , это означает, что правильная оболочка уже открыта. Кроме того, если вы видите значок оболочки Bash справа, его можно выбрать для запуска оболочки.
Если появится оболочка, отличной от bash , выберите стрелку раскрывающегося списка оболочки и выберите Git Bash.
Перейдите в терминале в каталог, где сохранили свой шаблон. Например, если вы сохранили его в папке templates, можно использовать следующую команду:
cd templates
Вход в 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, войдите в свою учетную запись Azure из терминала Visual Studio Code. Убедитесь, что вы установили Azure PowerShell, и войдите в ту же учетную запись, которая активировала песочницу.
В меню Терминал выберите Новый терминал. Окно терминала обычно открывается в нижней половине экрана.
Если окно терминала отображает pwsh или powershell справа, это означает, что правильная оболочка уже открыта. Кроме того, если вы видите значок оболочки PowerShell справа, его можно выбрать для запуска оболочки.
Если появится оболочка, отличной от pwsh или PowerShell , выберите стрелку раскрывающегося списка оболочки и выберите PowerShell.
Перейдите в терминале в каталог, где сохранили свой шаблон. Например, если вы сохранили его в папке templates, можно использовать следующую команду:
Set-Location -Path templates
Вход в 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 PowerShell в терминале Visual Studio Code.
New-AzTemplateSpec `
-ResourceGroupName <rgn>[sandbox resource group name]</rgn> `
-Name ToyCosmosDBAccount `
-Location westus `
-DisplayName 'Cosmos DB account' `
-Description "This template spec creates a Cosmos DB account that meets our company's requirements." `
-Version '1.0' `
-TemplateFile main.bicep
New-AzTemplateSpec `
-ResourceGroupName <rgn>[sandbox resource group name]</rgn> `
-Name ToyCosmosDBAccount `
-Location westus `
-DisplayName 'Cosmos DB account' `
-Description "This template spec creates a Cosmos DB account that meets our company's requirements." `
-Version '1.0' `
-TemplateFile azuredeploy.json
Опубликуйте спецификацию шаблона с помощью этой команды Azure CLI в терминале Visual Studio Code.
az ts create \
--name ToyCosmosDBAccount \
--location westus \
--display-name "Cosmos DB account" \
--description "This template spec creates a Cosmos DB account that meets our company's requirements." \
--version 1.0 \
--template-file main.bicep
az ts create \
--name ToyCosmosDBAccount \
--location westus \
--display-name "Cosmos DB account" \
--description "This template spec creates a Cosmos DB account that meets our company's requirements." \
--version 1.0 \
--template-file azuredeploy.json
Используйте портал Azure для проверки спецификации шаблона.
Перейдите на портал Azure и убедитесь, что вы находитесь в подписке песочницы:
- Выберите свой аватар в правом верхнем углу страницы.
- Выберите Переключить каталог. В списке выберите каталог Песочница Microsoft Learn.
На левой панели выберите Группы ресурсов.
Выберите "
[имя группы ресурсов песочницы] " Обратите внимание, что спецификация шаблона включена в список ресурсов.Выберите ToyCosmosDBAccount, чтобы открыть спецификацию шаблона. Отображаются версии и файл шаблона.
Развертывание спецификации шаблона
Для простоты вы развертываете спецификацию шаблона в той же группе ресурсов песочницы, в которую хранится сама спецификация шаблона. Как правило, спецификации шаблонов хранятся в другой группе ресурсов. Однако эти действия одинаковы в любой ситуации.
Получите идентификатор ресурса версии спецификации шаблона, выполнив следующую команду Azure PowerShell.
$templateSpecVersionResourceId = (` Get-AzTemplateSpec ` -ResourceGroupName <rgn>[sandbox resource group name]</rgn> ` -Name ToyCosmosDBAccount ` -Version 1.0 ` ).Versions[0].Id
Обратите внимание, что используется свойство
Versions
. При развертывании спецификации шаблона необходимо указать идентификатор ресурса конкретной версии спецификации шаблона, которую необходимо использовать.Разверните спецификацию шаблона с помощью этой команды Azure PowerShell в терминале Visual Studio Code.
New-AzResourceGroupDeployment -TemplateSpecId $templateSpecVersionResourceId
Получите идентификатор ресурса версии спецификации шаблона, выполнив следующую команду Azure CLI.
id=$(az ts show \ --name ToyCosmosDBAccount \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --version "1.0" \ --query "id")
Разверните спецификацию шаблона с помощью этой команды Azure CLI в терминале Visual Studio Code.
az deployment group create --template-spec $id
Развертывание может занять одну–две минуты.
Проверка развертывания
В своем браузере вернитесь на портал Azure. Перейдите к группе ресурсов.
Рядом с развертываниями выберите ссылку "Успешно выполнено ", чтобы просмотреть сведения о развертывании.
Выберите развертывание.
Имя развертывания может отличаться от имени в примере.
Выберите пункт Сведения о развертывании, чтобы развернуть его. Убедитесь, что развернута учетная запись Azure Cosmos DB.