Использование модуля из частного реестра

Завершено

Вы узнали, как публиковать модули в частном реестре. Из этого урока вы узнаете, как использовать модули, которые уже находятся в реестре в составе шаблона Bicep.

Использование модуля Bicep

Если вы нашли модуль, который хотите использовать, создайте определение модуля в шаблоне Bicep. Приведем пример:

module myModule 'br:myregistry.azurecr.io/modulepath/modulename:moduleversion' = {
  name: 'my-module'
  params: {
    moduleParameter1: 'value'
  }
}

Обратите внимание, что определение модуля аналогично определению локального модуля, но с одним важным отличием. Вместо настройки пути к файлу Bicep в файловой системе необходимо добавить путь к модулю в реестр.

После добавления ссылки на модуль Visual Studio Code пытается автоматически скачать модуль из реестра. При скачивании модуля расширение Bicep для Visual Studio Code предоставляет IntelliSense и другую помощь по созданию кода во время работы.

Aliases

Для упрощения определений модулей можно использовать псевдоним реестра. Вместо указания имени реестра при каждом определении модуля используется его псевдоним. Псевдонимы дают ряд преимуществ:

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

Чтобы определить псевдоним, необходимо создать файл bicepconfig.json в той же папке, что и файл Bicep. В файле bicepconfig.json вы определяете псевдонимы, как в следующем примере:

{
  "moduleAliases": {
    "br": {
      "MyRegistry": {
        "registry": "myregistry.azurecr.io"
      }
    }
  }
}

При определении модуля в файле Bicep используется немного другой тип пути к модулю, который включает псевдоним:

module myModule 'br/MyRegistry:bicep/my-module:v1' = {
  // ...
}

Совет

Обратите внимание, что при использовании псевдонима путь начинается с br/, а без него — с br:.

Псевдоним также может включать путь к модулям в реестре, что полезно при использовании общего префикса для модулей:

{
  "moduleAliases": {
    "br": {
      "MyRegistryWithPath": {
        "registry": "myregistry.azurecr.io",
        "modulePath": "bicep"
      }
    }
  }
}

После этого можно опустить путь при определении модуля в файле Bicep:

module myModule 'br/MyRegistryWithPath:my-module:v1' = {
  // ...
}

Сборка файла Bicep

Когда все будет готово к развертыванию файла Bicep, его можно будет развернуть так же, как обычно. Bicep скачивает модуль из реестра автоматически в рамках процесса развертывания. Bicep внедряет все модули, на которые вы ссылаетесь, в преобразованный файл шаблон ARM, представляющий собой JSON-файл.

Процесс загрузки модуля можно отделить от сборки, воспользовавшись командой bicep restore. Затем используйте команду bicep build с параметром командной строки --no-restore, чтобы предотвратить загрузку модуля в процессе сборки. Как правило, вам не нужно отделять модули и автоматически загружать модули Bicep.