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


Команды 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:

bicep build main.bicep

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

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

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

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

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

bicep build main.bicep --stdout

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

Примечание.

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

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

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

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

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

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

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

сборка-params

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

bicep build-params params.bicepparam

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

decompile

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

bicep decompile main.json

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

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

decompile-params

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

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

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

format

Команда format форматирует Bicep-файл таким образом, чтобы он соблюдал рекомендуемые соглашения о стиле. Подумайте об этом как о "средстве форматирования кода" или "более красивом" для файлов Bicep. Она имеет ту же функцию, что SHIFT+ALT+F и ярлык в Visual Studio Code.

bicep format main.bicep

generate-params

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

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

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

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

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

Установить

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

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

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

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

Следующие методы доступны через интерфейс JSON-RPC:

  • bicep/format

    Форматирует Bicep-файл.

    • Запрос:

      {
        "jsonrpc": "2.0",
        "id": 1,
        "method": "bicep/format",
        "params": {
          "path": "/path/to/file.bicep"
        }
      }
      
    • Ответ:

      {
        "jsonrpc": "2.0",
        "id": 1,
        "result": {
          "success": true,
          "diagnostics": [],
          "contents": "param foo string\n\nresource storage 'Microsoft.Storage/storageAccounts@2025-01-01' = {\n  name: 'mystorageaccount'\n  location: 'East US'\n}\n"
        }
      }
      

      При успешном выполнении "success": true возвращается содержимое, в который содержится форматированный источник Bicep. При сбое "success": false с diagnostics описанием сбоя.

  • bicep/version

Возвращает версию интерфейса командной строки 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, выполните приведенные действия.

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

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

lint

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

bicep lint main.bicep

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

Примечание.

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

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

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.

N/A

публикация

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

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

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

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

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

Например:

bicep publish 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 restore <bicep-file>

Вы предоставляете файл 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.

версия

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

bicep --version

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

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

Bicep CLI version 0.29.45 (57a44c0230)

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

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