Создание частного реестра для модулей Bicep
Для совместного использования модулей в организации можно создать частный реестр модулей. Затем можно опубликовать модули в этом реестре и предоставить пользователям доступ на чтение, которым необходимо развернуть модули. Предоставив общий доступ к модулям в реестре, вы сможете ссылаться на них из файлов Bicep. Сведения об использовании общедоступных модулей см. в разделе "Модули Bicep".
Для работы с реестрами модулей требуется CLI Bicep версии 0.4.1008 или новее. Для использования с Azure CLI также необходима версия 2.31.0 или новее; для использования с Azure PowerShell также необходима версия 7.0.0 или новее.
Обучающие материалы
Дополнительные сведения о параметрах и практические инструкции см. в схеме обучения Совместное использование модулей Bicep с частными реестрами.
Настройка частного реестра
Реестр Bicep находится в Реестре контейнеров Azure (ACR). Чтобы настроить реестр для модулей, выполните следующие действия.
Если у вас уже есть реестр контейнеров, можно использовать его. Если вам нужно создать реестр контейнеров, см. инструкции в статье Краткое руководство. Создание реестра контейнеров с помощью файла Bicep.
Можно использовать любой из доступных номеров SKU реестра для реестра модулей. Георепликация реестра предоставляет пользователям локальное присутствие или горячее резервное копирование.
Получите имя сервера входа. Это имя необходимо при связывании с реестром из файлов Bicep. Формат имени сервера входа:
<registry-name>.azurecr.io
.Чтобы получить имя сервера для входа, выполните командлет Get-AzContainerRegistry.
Get-AzContainerRegistry -ResourceGroupName "<resource-group-name>" -Name "<registry-name>" | Select-Object LoginServer
Для публикации модулей в реестре необходимо разрешение на отправку образа. Для развертывания модуля из реестра необходимо разрешение на получение образа. Дополнительные сведения о ролях, которые предоставляют достаточный доступ, см. в статье Роли и разрешения Реестра контейнеров Azure.
В зависимости от типа учетной записи, используемой для развертывания модуля, может потребоваться настройка учетных данных. Эти учетные данные нужны для получения модулей из реестра. По умолчанию учетные данные получаются из Azure CLI или Azure PowerShell. Можно настроить приоритет получения учетных данных в файле bicepconfig.json. Дополнительные сведения см. в разделе Учетные данные для восстановления модулей.
Внимание
Частный реестр контейнеров доступен только пользователям с требуемым доступом. Однако доступ к нему можно получить через общедоступный Интернет. В целях повышения уровня безопасности можно требовать доступ через частную конечную точку. См. статью Частное подключение к реестру контейнеров Azure с помощью Приватного канала Azure.
В реестре частных контейнеров должен быть задан параметр enabled
политикиazureADAuthenticationAsArmPolicy
. Если azureADAuthenticationAsArmPolicy
задано значение disabled
, при публикации модулей вы получите сообщение об ошибке 401 (несанкционированное). В Реестр контейнеров Azure представлена политика условного доступа.
Публикация файлов в реестре
После настройки реестра контейнеров можно публиковать в нем файлы. Используйте команду publish и предоставьте все файлы Bicep, которые нужно использовать в качестве модулей. Укажите целевое расположение модуля в реестре. Команда публикации создает шаблон ARM, который хранится в реестре. Это означает, что при публикации Bicep-файла, ссылающегося на другие локальные модули, эти модули полностью расширяются как один JSON-файл и публикуются в реестре.
Publish-AzBicepModule -FilePath ./storage.bicep -Target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 -DocumentationUri https://www.contoso.com/exampleregistry.html
С помощью интерфейса командной строки Bicep версии 0.27.1 или более поздней можно опубликовать модуль с исходным кодом Bicep в дополнение к скомпилированному шаблону JSON. Если модуль публикуется с исходным кодом Bicep в реестре, можно нажать клавишу F12
(Перейти к определению) из Visual Studio Code, чтобы просмотреть код Bicep. Расширение Bicep версии 0.27 или новое требуется для просмотра Bicep-файла.
Publish-AzBicepModule -FilePath ./storage.bicep -Target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 -DocumentationUri https://www.contoso.com/exampleregistry.html -WithSource
При использовании исходного коммутатора в манифесте отображается еще один слой:
Если модуль Bicep ссылается на модуль в частном реестре, конечная точка ACR отображается. Чтобы скрыть полную конечную точку, можно настроить псевдоним для частного реестра.
Просмотр файлов в реестре
Чтобы просмотреть опубликованный модуль на портале, выполните следующие действия.
Войдите на портал Azure.
Выполните поиск реестров контейнеров.
Выберите ваш реестр.
Выберите службы ->Репозитории в меню слева.
Выберите путь к модулю (репозиторий). В предыдущем примере имя пути к модулю —bicep/modules/storage.
Выберите тег. В предыдущем примере тег — v1.
Ссылка на артефакт соответствует ссылке , используемой в файле Bicep.
Теперь можно создать ссылку на файл в реестре из файла Bicep. Примеры синтаксиса, используемого для ссылки на внешний модуль, см. в статье Модули Bicep.
Работа с файлами реестра Bicep
При использовании файлов bicep, размещенных в удаленном реестре, важно понять, как локальный компьютер взаимодействует с реестром. При первом объявлении ссылки на реестр локальный редактор пытается связаться с Реестр контейнеров Azure и скачать копию реестра в локальный кэш.
Расположение локального кэша:
В Windows
%USERPROFILE%\.bicep\br\<registry-name>.azurecr.io\<module-path\<tag>
В Linux
/home/<username>/.bicep
На Компьютере Mac
~/.bicep
Локальный компьютер может распознать любые изменения, внесенные в удаленный реестр, пока не запустите restore
указанный файл, содержащий ссылку на реестр.
az bicep restore --file <bicep-file> [--force]
Дополнительные сведения см. в команде restore
.
Следующие шаги
- Для получения информации о модулях см. Модули Bicep.
- Чтобы настроить псевдонимы для реестра модуля, см. статью Добавление параметров модуля в файле конфигурации Bicep.
- Дополнительные сведения о публикации и восстановлении модулей см. статье Команды CLI Bicep.