Поделиться через


Команды Bicep CLI

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

В этом руководстве показано, как выполнять команды в Azure CLI. При выполнении команд в Azure CLI начните с них az. Если вы не используете Azure CLI, выполните команды без az каждой из них. Например, az bicep build становится bicep buildи az bicep version становится bicep --version.

сборка

Команда build преобразует Bicep-файл в шаблон Azure Resource Manager JSON (шаблон ARM). Как правило, выполнять эту команду не нужно, так как она выполняется автоматически при развертывании файла Bicep. Запустите его вручную, когда вы хотите увидеть шаблон ARM JSON, созданный из файла Bicep.

При использовании любой из следующих функций Bicep автоматически включается создание кода версии 2.0:

В приведенном ниже примере файл Bicep с именем main.bicep преобразуется в шаблон ARM с именем main.json. Новый файл создается в том же каталоге, что и файл Bicep:

az bicep build --file main.bicep

Следующий пример сохраняет main.json в другом каталоге:

az bicep build --file main.bicep --outdir c:\jsontemplates

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

az bicep build --file main.bicep --outfile c:\jsontemplates\azuredeploy.json

Чтобы напечатать файл в stdout, используйте следующую команду:

az bicep build --file main.bicep --stdout

Если файл Bicep содержит модуль, ссылающийся на внешний реестр, build команда автоматически вызывается restore. Команда restore получает файл из реестра и сохраняет его в локальном кэше.

Примечание.

Команда restore не обновляет кэш. Дополнительные сведения см. здесь.

Чтобы не вызывать restore автоматически, используйте параметр --no-restore:

az bicep build --no-restore <bicep-file>

Процесс сборки с параметром --no-restore завершается сбоем, если один из внешних модулей еще не кэширован:

The module with reference "br:exampleregistry.azurecr.io/bicep/modules/storage:v1" hasn't been restored.

При получении этой ошибки выполните команду без --no-restore переключателя или запустите build bicep restore сначала.

Чтобы использовать --no-restore этот параметр, необходимо иметь Bicep CLI версии 0.4.X или более поздней.

сборка-params

Команда build-params создает .bicepparam файл в файл параметров JSON:

az bicep build-params --file params.bicepparam

Эта команда преобразует файл параметров params.bicepparam в файл параметров params.json JSON.

decompile

Команда decompile преобразует шаблон JSON ARM в файл Bicep:

az bicep decompile --file main.json

Эта команда создает файл с именем main.bicep в том же каталоге, что и main.json. Если main.bicep существует в том же каталоге, используйте --force , чтобы перезаписать существующий файл Bicep.

Дополнительные сведения об использовании этой команды см. в разделе "Decompile JSON ARM template to Bicep".

decompile-params

Команда decompile-params декомпилирует файл параметров JSON в .bicepparam файл параметров.

az bicep decompile-params --file azuredeploy.parameters.json --bicep-file ./dir/main.bicep

Эта команда декомпилирует файл параметров azuredeploy.parameters.json в файл azuredeploy.parameters.bicepparam . --bicep-file указывает путь к Bicep-файлу (относительно .bicepparam файла), на который ссылается объявление using .

format

Команда format форматирует файл Bicep. Она имеет ту же функцию, что SHIFT+ALT+F и ярлык в Visual Studio Code.

az bicep format --file main.bicep

generate-params

Команда generate-params создает файл параметров из заданного файла Bicep, обновляется, если существует существующий файл параметров.

az bicep generate-params --file main.bicep --output-format bicepparam --include-params all

Эта команда создает файл параметров Bicep с именем main.bicepparam. Файл параметров содержит все параметры в файле Bicep, независимо от того, настроено ли значение по умолчанию.

az bicep generate-params --file main.bicep --outfile main.parameters.json

Эта команда создает файл параметров с именем main.parameters.json. Файл параметров содержит только параметры без значений по умолчанию, настроенных в файле Bicep.

Установить

Команда install добавляет интерфейс командной строки Bicep в локальную среду, и она доступна только через Azure CLI. Дополнительные сведения см. в статье Установка средств Bicep.

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

az bicep install

Установка конкретного выпуска:

az bicep install --version v0.3.255

jsonrpc

Эта jsonrpc команда позволяет запускать интерфейс командной строки Bicep с интерфейсом JSON-RPC, что позволяет программно взаимодействовать со структурированными выходными данными и избегать задержек холодного запуска при компиляции нескольких файлов. Эта настройка также поддерживает создание библиотек для программного взаимодействия с файлами Bicep на non-.NET языках.

Формат провода для отправки и получения входных и выходных данных имеет разделители заголовков, используя следующую структуру, где \r и \n представляют символы возврата каретки и канала строки:

Content-Length: <length>\r\n\r\n<message>\r\n\r\n
  • <length> — длина <message> строки, включая конечную \r\n\r\nстроку.
  • <message> — это необработанное сообщение JSON.

Например:

Content-Length: 72\r\n\r\n{"jsonrpc": "2.0", "id": 0, "method": "bicep/version", "params": {}}\r\n\r\n

В следующем сообщении показан пример версии Bicep.

  • Входные данные:

    {
      "jsonrpc": "2.0",
      "id": 0,
      "method": "bicep/version",
      "params": {}
    }
    
  • Результаты:

    {
      "jsonrpc": "2.0",
      "id": 0,
      "result": {
        "version": "0.24.211"
      }
    }
    

Доступные методы и тела запроса и ответа см. в разделе ICliJsonRpcProtocol.cs. Пример установки подключения JSONRPC и взаимодействия с файлами Bicep программным способом с помощью Node см. в разделе jsonrpc.test.ts.

Использование именованного канала

Используйте следующий синтаксис для подключения к существующему именованном каналу в качестве клиента JSONRPC:

bicep jsonrpc --pipe <named_pipe>`

<named_pipe> — это существующий именованный канал для подключения клиента JSONRPC к.

Чтобы подключиться к именованной каналу в OSX/Linux:

bicep jsonrpc --pipe /tmp/bicep-81375a8084b474fa2eaedda1702a7aa40e2eaa24b3.sock

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

bicep jsonrpc --pipe \\.\pipe\\bicep-81375a8084b474fa2eaedda1702a7aa40e2eaa24b3.sock`

Дополнительные примеры см. в разделе C# и node.js.

Использование сокета TCP

Используйте следующий синтаксис для подключения к существующему сокету TCP в качестве клиента JSONRPC:

bicep jsonrpc --socket <tcp_socket>

<tcp_socket> — номер сокета, к которому подключается клиент JSONRPC.

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

bicep jsonrpc --socket 12345

Использование stdin и stdout

Используйте следующий синтаксис и stdin stdout сообщения для запуска интерфейса JSONRPC:

bicep jsonrpc --stdio

lint

Команда lint возвращает ошибки и нарушения правил linter файла Bicep.

az bicep lint --file main.bicep

Если файл Bicep содержит модуль, ссылающийся на внешний реестр, lint команда автоматически вызывается restore. Команда restore получает файл из реестра и сохраняет его в локальном кэше.

Примечание.

Команда restore не обновляет кэш. Дополнительные сведения см. здесь.

Чтобы не вызывать restore автоматически, используйте параметр --no-restore:

az bicep lint --no-restore <bicep-file>

Процесс lint с коммутатором --no-restore завершается ошибкой, если один из внешних модулей еще не кэширован:

The module with reference "br:exampleregistry.azurecr.io/bicep/modules/storage:v1" has not been restored.

При возникновении этой ошибки выполните команду lint без параметра --no-restore либо сначала выполните bicep restore.

list-versions

Команда list-versions возвращает все доступные версии интерфейса Bicep CLI. Используйте эту команду, чтобы узнать, требуется ли обновить или установить новую версию. Эта команда доступна только через Azure CLI.

az bicep list-versions

Команда возвращает массив доступных версий:

[
  "v0.28.1",
  "v0.27.1",
  "v0.26.170",
  "v0.26.54",
  "v0.25.53",
  "v0.25.3",
  "v0.24.24",
  "v0.23.1",
  "v0.22.6",
  "v0.21.1",
  "v0.20.4",
  "v0.19.5",
  "v0.18.4",
  "v0.17.1",
  "v0.16.2",
  "v0.16.1",
  "v0.15.31",
  "v0.14.85",
  "v0.14.46",
  "v0.14.6",
  "v0.13.1",
  "v0.12.40",
  "v0.12.1",
  "v0.11.1",
  "v0.10.61",
  "v0.10.13",
  "v0.9.1",
  "v0.8.9",
  "v0.8.2",
  "v0.7.4"
]

публикация

Команда publish добавляет модуль в реестр. Реестр контейнеров Azure должен существовать, а учетная запись, осуществляющая публикацию в него, должна иметь подходящие разрешения. Дополнительные сведения о настройке реестра модулей см. в разделе Использование частного реестра для модулей Bicep. Чтобы опубликовать модуль, учетная запись должна иметь правильный профиль и разрешения для доступа к реестру. Вы можете настроить приоритет профиля и учетных данных для проверки подлинности в реестре в файле конфигурации Bicep.

После публикации файла в реестре вы можете ссылаться на него в модуле.

Для использования publish команды и-d --documentationUri/параметра необходимо использовать Bicep CLI версии 0.14.X или более поздней.

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

az bicep publish --file <bicep-file> --target br:<registry-name>.azurecr.io/<module-path>:<tag> --documentationUri <documentation-uri>

Например:

az bicep publish --file storage.bicep --target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 --documentationUri https://www.contoso.com/exampleregistry.html

Команда publish не распознает псевдонимы, указанные в файле bicepconfig.json. Укажите полный путь модуля.

Предупреждение

Публикация в том же целевом объекте перезапишет старый модуль. Рекомендуется увеличивать версию при внесении изменений.

Восстановление

Если файл Bicep использует модули, опубликованные в реестре, команда restore получает из реестра копии всех необходимых модулей. Эти копии помещаются в локальный кэш. Сборку файла Bicep можно выполнить только при наличии внешних файлов в локальном кэше. Обычно выполнение восстановления не требуется, так как он автоматически активируется процессом сборки.

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

Чтобы использовать restore команду, необходимо иметь интерфейс командной строки Bicep версии 0.14.X или более поздней. В настоящее время эта команда доступна только при вызове интерфейса командной строки Bicep напрямую. Сейчас он недоступен через Azure CLI.

Чтобы вручную восстановить внешние модули для файла, используйте следующее:

az bicep restore --file <bicep-file> [--force]

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

module stgModule 'br:exampleregistry.azurecr.io/bicep/modules/storage:v1' = {
  name: 'storageDeploy'
  params: {
    storagePrefix: 'examplestg1'
  }
}

Расположение локального кэша:

  • В Windows

    %USERPROFILE%\.bicep\br\<registry-name>.azurecr.io\<module-path\<tag>
    
  • В Linux

    /home/<username>/.bicep
    
  • На Компьютере Mac

    ~/.bicep
    

Команда restore не обновляет кэш, если модуль уже кэширован. Чтобы обновить кэш, можно удалить путь модуля из кэша или использовать --force переключатель с restore помощью команды.

обновление

Команда upgrade обновляет установленную версию до последней версии. Эта команда доступна только через Azure CLI.

az bicep upgrade

версия

Команда version возвращает установленную версию:

az bicep version

Команда показывает номер версии:

Bicep CLI version 0.22.6 (d62b94db31)

Чтобы вызвать эту команду непосредственно через Bicep CLI, используйте следующее:

bicep --version

Если интерфейс командной строки Bicep не установлен, появится сообщение об ошибке, указывающее, что интерфейс командной строки Bicep не найден.

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

Дополнительные сведения о развертывании Bicep-файла см. в следующем разделе: