Упражнение. Использование модулей в реестре
В предыдущем упражнении вы опубликовали CDN и модули веб-сайта в реестре компании по продаже игрушек. Теперь вы хотите продемонстрировать команде, осуществляющей разработку игрушечных собак, как использовать модули для собственного развертывания.
В этом упражнении вы выполните следующие действия.
- Создайте файл Bicep, включающий модули из частного реестра.
- Добавьте ссылки на модули в реестре.
- Выполните сбору файла Bicep и проверьте его, чтобы понять, как работает процесс восстановления модуля.
- Перейдите на использование псевдонима реестра.
- Разверните файл Bicep в Azure.
Создание BICEP-файла
В Visual Studio Code создайте новый файл с именем main.bicep.
Сохраните пустой файл, куда Visual Studio Code загрузит средства Bicep.
Можно выбрать команду Файл>Сохранить как или нажать клавиши CTRL+S в Windows (⌘+S в macOS). Запомните расположение, в котором вы сохранили файл. Например, можно создать папку templates, куда будет сохранен файл.
Добавьте модули в файл Bicep.
В файле main.bicep добавьте следующие параметры и переменные:
@description('The Azure region into which the resources should be deployed.') param location string = 'westus3' @description('The name of the App Service app.') param appServiceAppName string = 'toy-${uniqueString(resourceGroup().id)}' @description('The name of the App Service plan SKU.') param appServicePlanSkuName string = 'F1' var appServicePlanName = 'toy-dog-plan'
После параметров и переменных используйте следующий код для добавления модуля веб-сайта из реестра. Обязательно замените
YOUR_CONTAINER_REGISTRY_NAME
на имя частного реестра.module website 'br:YOUR_CONTAINER_REGISTRY_NAME.azurecr.io/website:v1' = { name: 'toy-dog-website' params: { appServiceAppName: appServiceAppName appServicePlanName: appServicePlanName appServicePlanSkuName: appServicePlanSkuName location: location } }
Обратите внимание, что при вводе текста под идентификатором модуля в Bicep отображаются красные волнистые линии, которые затем исчезают. Это происходит потому, что расширение Bicep для Visual Studio Code считывает модуль из реестра и сохраняет его в локальной файловой системе.
Под созданным модулем используйте следующий код, чтобы добавить модуль CDN из реестра. Обязательно замените
YOUR_CONTAINER_REGISTRY_NAME
на имя частного реестра.module cdn 'br:YOUR_CONTAINER_REGISTRY_NAME.azurecr.io/cdn:v1' = { name: 'toy-dog-cdn' params: { httpsOnly: true originHostName: website.outputs.appServiceAppHostName } }
Сохраните файл.
Создание и проверка файла Bicep
Здесь вы выполняете сборку файла Bicep в шаблон ARM JSON. Обычно вам не нужно выполнять сборку, но это полезно при обучении работы модулей.
В окне терминала Visual Studio Code выполните следующую команду, чтобы выполнить сборку файла Bicep в JSON-файл:
az bicep build --file main.bicep
Bicep создает файл с именем main.json в той же папке, что и файл main.bicep.
Откройте файл main.json.
Обратите внимание, что в разделе
resources
шаблона ARM JSON, начинающемся примерно со строки 134, некоторые ресурсы имеют типMicrosoft.Resources/deployments
. Эти ресурсы представляют развертывания модулей, которые были определены в модуле, добавленном из реестра.
В окне терминала Visual Studio Code выполните следующую команду, чтобы выполнить сборку файла Bicep в JSON-файл:
bicep build main.bicep
Bicep создает файл с именем main.json в той же папке, что и файл main.bicep.
Откройте файл main.json.
Обратите внимание, что в разделе
resources
шаблона ARM JSON, начинающемся примерно со строки 134, некоторые ресурсы имеют типMicrosoft.Resources/deployments
. Эти ресурсы представляют развертывания модулей, которые были определены в модуле, добавленном из реестра.
Создание псевдонима реестра
Вместо того чтобы внедрять URL-адрес реестра в файл Bicep, вы решили создать псевдоним реестра. Такой подход упрощает чтение файла Bicep.
В Visual Studio Code создайте новый файл с именем bicepconfig.json. Создайте его в той же папке, что и файл main.bicep.
Вставьте следующий код в файл bicepconfig.json. Обязательно замените
YOUR_CONTAINER_REGISTRY_NAME
на имя частного реестра.{ "moduleAliases": { "br": { "ToyCompanyRegistry": { "registry": "YOUR_CONTAINER_REGISTRY_NAME.azurecr.io" } } } }
Сохраните файл.
Использование псевдонима реестра
Здесь вы обновляете файл Bicep, чтобы использовать псевдоним реестра вместо непосредственного обращения к реестру.
Откройте файл main.bicep.
Найдите определение модуля
website
и включите в него псевдоним реестра:module website 'br/ToyCompanyRegistry:website:v1' = { name: 'toy-dog-website' params: { appServiceAppName: appServiceAppName appServicePlanName: appServicePlanName appServicePlanSkuName: appServicePlanSkuName location: location } }
Совет
Обязательно измените начало пути к модулю с
br:
наbr/
. Кроме того, послеToyCompanyRegistry
замените символ косой черты (/
) на двоеточие (:
).Внесите аналогичное изменение в модуль
cdn
:module cdn 'br/ToyCompanyRegistry:cdn:v1' = { name: 'toy-dog-cdn' params: { httpsOnly: true originHostName: website.outputs.appServiceAppHostName } }
Сохраните файл.
Проверка файла Bicep
После выполнения всех описанных выше изменений файл main.bicep должен выглядеть, как в следующем примере:
@description('The Azure region into which the resources should be deployed.')
param location string = 'westus3'
@description('The name of the App Service app.')
param appServiceAppName string = 'toy-${uniqueString(resourceGroup().id)}'
@description('The name of the App Service plan SKU.')
param appServicePlanSkuName string = 'F1'
var appServicePlanName = 'toy-dog-plan'
module website 'br/ToyCompanyRegistry:website:v1' = {
name: 'toy-dog-website'
params: {
appServiceAppName: appServiceAppName
appServicePlanName: appServicePlanName
appServicePlanSkuName: appServicePlanSkuName
location: location
}
}
module cdn 'br/ToyCompanyRegistry:cdn:v1' = {
name: 'toy-dog-cdn'
params: {
httpsOnly: true
originHostName: website.outputs.appServiceAppHostName
}
}
Если файл не соответствует примеру, скопируйте пример или откорректируйте свой шаблон в соответствии с примером.
Развернуть в Azure
В окне терминала Visual Studio Code разверните шаблон в Azure, выполнив указанную ниже команду. Этот процесс может занять несколько минут, чтобы завершить успешное развертывание.
az deployment group create \
--template-file main.bicep
New-AzResourceGroupDeployment -TemplateFile main.bicep
Проверка развертывания
Перейдите на портал Azure и убедитесь, что вы находитесь в подписке песочницы:
- Выберите свой аватар в правом верхнем углу страницы.
- Выберите Переключить каталог. В списке выберите каталог Песочница Microsoft Learn.
На левой панели выберите Группы ресурсов.
Выберите "
[имя группы ресурсов песочницы] "В меню слева выберите Развертывания.
Обратите внимание, что в списке перечислены три развертывания:
- main представляет развертывание родительского Bicep-файла.
- toy-dog-cdn и toy-dog-site представляют модули, которые вы включили в файл main.bicep .
Выберите главное развертывание и разверните узел Сведения о развертывании.
Обратите внимание, что указаны оба модуля, и их типы отображаются как
Microsoft.Resources/deployments
. Модульtoy-dog-website
указывается дважды, так как на его выходные данные также имеется ссылка в шаблоне.Выберите развертывания toy-dog-cdn и toy-dog-website и просмотрите ресурсы, которые были развернуты в рамках каждого из них. Обратите внимание, что они соответствуют ресурсам, определенным в соответствующих модулях.