次の方法で共有


Bicep CLI コマンド

この記事では、Bicep CLI で使用できるコマンドについて説明します。 これらのコマンドを実行するには、Azure CLI を使用するか、Bicep CLI コマンドを直接呼び出すかの 2 つのオプションがあります。 それぞれの方法で、個別のインストール プロセスが必要です。 詳細については、「Azure CLI のインストール」および「Azure PowerShell をインストールする」を参照してください。

この記事では、Azure CLI でコマンドを実行する方法を示します。 Azure CLI を使用して実行する場合は、az でコマンドを開始します。 Azure CLI を使用しない場合は、コマンドの先頭に az を指定せずにコマンドを実行します。 たとえば、 az bicep buildbicep buildaz bicep versionbicep --version になります。

build

build コマンドは、Bicep ファイルを Azure Resource Manager テンプレート (ARM テンプレート) に変換します。 通常、このコマンドを実行する必要はありません。Bicep ファイルのデプロイ時に自動的に実行されます。 Bicep ファイルから作成される ARM テンプレート JSON を表示する場合は、このコマンドを手動で実行してください。

次のいずれかの Bicep 機能を使用すると、言語バージョン 2.0 コード生成が自動的に有効になります。

次の例では、main.bicep という名前の Bicep ファイルを、main.json という名前の ARM テンプレートに変換します。 新しいファイルは、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 コマンドは、レジストリからファイルを取得し、ローカル キャッシュに格納します。

Note

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" has not been restored.

このエラーが発生した場合は、--no-restore スイッチを指定せずに build コマンドを実行するか、最初に bicep restore を実行します。

--no-restore スイッチを使用するには、Bicep CLI バージョン 0.4.X 以上が必要です。

build-params

build-params コマンドは、 .bicepparam ファイルを JSON パラメーター ファイルにビルドします。

az bicep build-params --file params.bicepparam

このコマンドは、 params.bicepparam パラメーター ファイルを params.json JSON パラメーター ファイルへ変換します。

decompile

decompile コマンドは、ARM テンプレート JSON を Bicep ファイルに変換します。

az bicep decompile --file main.json

このコマンドでは、main.json と同じディレクトリに main.bicep という名前のファイルを作成します。 main.bicep が同じディレクトリに存在する場合は、--force スイッチを使用して既存の Bicep ファイルを上書きします。

このコマンドの使用方法の詳細については、「Bicep への ARM テンプレート JSON の逆コンパイル」を参照してください。

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 は、using 宣言で参照される Bicep ファイルへのパス (.bicepparam ファイルとの相対パス) を指定します。

format

format コマンドを使うと Bicep ファイルの書式を設定できます。 Visual Studio Code の SHIFT+ALT+F ショートカットと同じ機能があります。

az bicep format --file main.bicep

generate-params

generate-params コマンドは、指定された Bicep ファイルからパラメーター ファイルを構築し、既存のパラメーター ファイルがある場合は更新します。

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

コマンドは、main.bicepparam という名前の Bicep パラメーター ファイルを作成します。 パラメーター ファイルには、既定値で構成されているかどうかに関係なく、Bicep ファイル内のすべてのパラメーターが含まれます。

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

このコマンドは、 main.parameters.jsonという名前のパラメーター ファイルを作成します。 パラメーター ファイルには、Bicep ファイルで既定値が構成されていないパラメーターのみが含まれています。

インストール

install コマンドは、ローカル環境に Bicep CLI を追加します。 詳細については、「Bicep ツールのインストール」を参照してください。 このコマンドは、Azure CLI でのみ使用できます。

最新バージョンをインストールするには、次のコマンドを実行します。

az bicep install

特定のバージョンをインストールするには、以下を実行します。

az bicep install --version v0.3.255

jsonrpc

jsonrpc コマンドを使用すると、JSON-RPC インターフェイスを使用して Bicep CLI を実行できます。これにより、構造化された出力をプログラムで操作したり、複数のファイルをコンパイルするときのコールド スタート遅延を回避したりできます。 このセットアップでは、Bicep ファイルを non-.NET 言語でプログラムで操作するためのライブラリの構築もサポートされています。

入力/出力を送受信するためのワイヤ形式は、次の構造を使用してヘッダーで区切られます。ここで、 \r\n は復帰文字と改行文字を表します。

Content-Length: <length>\r\n\r\n<message>\r\n\r\n
  • <length>は、末尾の\r\n\r\nを含む、<message>文字列の長さです。
  • <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 接続を確立し、Node を使用してプログラムで Bicep ファイルと対話する例については、 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 ソケットの使用

JSONRPC クライアントとして既存の TCP ソケットに接続するには、次の構文を使用します。

bicep jsonrpc --socket <tcp_socket>

<tcp_socket> は、JSONRPC クライアントの接続先のソケット番号です。

TCP ソケットに接続するには

bicep jsonrpc --socket 12345

stdin と stdout の使用法

メッセージに stdin & stdout を使用して JSONRPC インターフェイスを実行するには、次の構文を使用します。

bicep jsonrpc --stdio

lint

lint コマンドを使うと Bicep ファイルのエラーとリンター規則違反を返すことができます。

az bicep lint --file main.bicep

Bicep ファイルに外部レジストリを参照するモジュールが含まれている場合、lint コマンドによって restore が自動的に呼び出されます。 restore コマンドは、レジストリからファイルを取得し、ローカル キャッシュに格納します。

Note

restore コマンドはキャッシュを更新しません。 詳細については、「restore」を参照してください。

restore を自動的に呼び出さないようにするには、--no-restore スイッチを使用します。

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

外部モジュールのいずれかがまだキャッシュされていない場合、--no-restore スイッチを使った lint プロセスは失敗します。

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

このエラーが発生した場合は、--no-restore スイッチを指定せずに lint コマンドを実行するか、最初に 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 コマンドを使うには、Bicep CLI バージョン 0.14.X 以降が必要です。 --documentationUri/-d パラメーターを使用するには、Bicep CLI バージョン 0.14 以上が必要です。

モジュールをレジストリに発行するには、次のコマンドを使用します。

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 CLI バージョン 0.4.X 以上が必要です。 このコマンドは現在、Bicep CLI を直接呼び出す場合にのみ使用できます。 現在、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 コマンドはキャッシュを更新しません。 キャッシュを更新するには、キャッシュからモジュール パスを削除するか、restore コマンドで --force スイッチを使用します。

upgrade

upgrade コマンドは、インストールされているバージョンを最新バージョンで更新します。 このコマンドは、Azure CLI でのみ使用できます。

az bicep upgrade

version

version コマンドは、インストールされているバージョンを返します。

az bicep version

次のコマンドは、バージョン番号を表示します。

Bicep CLI version 0.22.6 (d62b94db31)

Bicep CLI からこのコマンドを直接呼び出す場合は、次のコマンドを使います。

bicep --version

Bicep CLI がインストールされていない場合は、Bicep CLI が見つからなかったことを示すエラー メッセージが表示されます。

次のステップ

Bicep ファイルのデプロイの詳細については、以下の記事を参照してください。