Создание частного реестра для модулей Bicep

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

Для работы с реестрами модулей требуется CLI Bicep версии 0.4.1008 или новее. Для использования с Azure CLI также необходима версия 2.31.0 или новее; для использования с Azure PowerShell также необходима версия 7.0.0 или новее.

Обучающие материалы

Дополнительные сведения о параметрах и практические инструкции см. в схеме обучения Совместное использование модулей Bicep с частными реестрами.

Настройка частного реестра

Реестр Bicep находится в Реестре контейнеров Azure (ACR). Чтобы настроить реестр для модулей, выполните следующие действия.

  1. Если у вас уже есть реестр контейнеров, можно использовать его. Если вам нужно создать реестр контейнеров, см. инструкции в статье Краткое руководство. Создание реестра контейнеров с помощью файла Bicep.

    Можно использовать любой из доступных номеров SKU реестра для реестра модулей. Георепликация реестра предоставляет пользователям локальное присутствие или горячее резервное копирование.

  2. Получите имя сервера входа. Это имя необходимо при связывании с реестром из файлов Bicep. Формат имени сервера входа: <registry-name>.azurecr.io.

    Чтобы получить имя сервера для входа, выполните командлет Get-AzContainerRegistry.

    Get-AzContainerRegistry -ResourceGroupName "<resource-group-name>" -Name "<registry-name>"  | Select-Object LoginServer
    
  3. Для публикации модулей в реестре необходимо разрешение на отправку образа. Для развертывания модуля из реестра необходимо разрешение на получение образа. Дополнительные сведения о ролях, которые предоставляют достаточный доступ, см. в статье Роли и разрешения Реестра контейнеров Azure.

  4. В зависимости от типа учетной записи, используемой для развертывания модуля, может потребоваться настройка учетных данных. Эти учетные данные нужны для получения модулей из реестра. По умолчанию учетные данные получаются из 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

Просмотр файлов в реестре

Чтобы просмотреть опубликованный модуль на портале, выполните следующие действия.

  1. Войдите на портал Azure.

  2. Выполните поиск реестров контейнеров.

  3. Выберите ваш реестр.

  4. В меню слева выберите Репозитории.

  5. Выберите путь к модулю (репозиторий). В предыдущем примере имя пути к модулю —bicep/modules/storage.

  6. Выберите тег. В предыдущем примере тег — v1.

  7. Ссылка на артефакт совпадает со ссылкой, которая будет использоваться в файле Bicep.

    Bicep module registry artifact reference

Теперь можно создать ссылку на файл в реестре из файла 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 .

Следующие шаги