Sdílet prostřednictvím


příkazy rozhraní příkazového řádku Bicep

Tento článek popisuje příkazy, které můžete použít v rozhraní příkazového řádku Bicep. Tyto příkazy můžete spouštět pomocí Azure CLI nebo přímo vyvoláním příkazů rozhraní příkazového řádku Bicep. Každá metoda vyžaduje odlišný proces instalace. Další informace o instalacích najdete v tématu Azure CLI a Azure PowerShell.

Tyto pokyny ukazují, jak spustit příkazy v Azure CLI. Při spouštění příkazů v Azure CLI je začněte az. Pokud nepoužíváte Azure CLI, spusťte příkazy bez az na začátku každého. Například az bicep build se stane bicep builda az bicep version stane bicep --versionse .

build

Příkaz build převede soubor Bicep na šablonu Azure Resource Manager JSON (šablona ARM). Obvykle nemusíte tento příkaz spouštět, protože se spustí automaticky při nasazení souboru Bicep. Spusťte ji ručně, pokud chcete zobrazit šablonu JSON ARM vytvořenou z vašeho souboru Bicep.

Pomocí některé z následujících funkcí Bicep automaticky povolíte generování kódu verze 2.0:

Následující příklad převede soubor Bicep s názvem main.bicep k šabloně ARM s názvem main.json. Nový soubor se vytvoří ve stejném adresáři jako soubor Bicep:

bicep build main.bicep

Další příklad uloží main.json do jiného adresáře:

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

Následující příklad určuje název a umístění souboru, který se má vytvořit:

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

Pokud chcete soubor stdoutvytisknout, použijte:

bicep build main.bicep --stdout

Pokud váš soubor Bicep obsahuje modul, který odkazuje na externí registr, příkaz build automaticky volá restore. Příkaz restore získá soubor z registru a uloží ho do místní mezipaměti.

Poznámka:

Příkaz restore neaktualizuje mezipaměť. Další informace najdete v tématu obnovení.

Pokud chcete zabránit automatickému obnovení, použijte --no-restore přepínač:

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

Pokud chcete použít přepínač --no-restore, musíte mít rozhraní příkazového řádku Bicep cli verze 0.4.X nebo novější.

Proces sestavení s přepínačem --no-restore selže, pokud některý z externích modulů ještě není uložený v mezipaměti:

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

Když se zobrazí tato chyba, spusťte build příkaz bez --no-restore přepínače nebo nejprve spusťte bicep restore .

build-params

Příkaz build-params sestaví .bicepparam soubor do souboru parametrů JSON:

bicep build-params params.bicepparam

Tento příkaz převede soubor parametrů params.bicepparam na params.json soubor parametrů JSON.

dekompilovat

Příkaz decompile převede šablonu JSON ARM na soubor Bicep:

bicep decompile main.json

Tento příkaz vytvoří soubor main.bicep ve stejném adresáři jako main.json. Pokud main. bicep existuje ve stejném adresáři, pomocí přepínače --force přepište existující soubor Bicep.

Další informace o použití tohoto příkazu najdete v tématu Decompile šablona ARM JSON pro Bicep.

decompile-params

Příkaz decompile-params dekompiluje soubor parametrů JSON do .bicepparam souboru parametrů.

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

Tento příkaz dekompiuje soubor parametrů azuredeploy.parameters.json do souboru azuredeploy.parameters.bicepparam . Pomocí --bicep-file zadejte cestu k souboru Bicep (vzhledem k souboru .bicepparam), na který odkazuje deklarace using.

format

Příkaz format formátuje soubor Bicep tak, aby se řídil doporučenými konvencemi stylu. Představte si ho jako formátovač kódu nebo "hezčí" soubory Bicep. Má stejnou funkci jako zástupce SHIFT+ALT+F v Visual Studio Code.

bicep format main.bicep

generate-params

Příkaz generate-params sestaví soubor parametrů z daného souboru Bicep a aktualizuje ho, pokud existuje soubor existujících parametrů.

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

Tento příkaz vytvoří soubor parametrů Bicep s názvem main.bicepparam. Soubor parametrů obsahuje všechny parametry v souboru Bicep bez ohledu na to, jestli jsou nakonfigurované s výchozími hodnotami nebo ne.

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

Tento příkaz vytvoří soubor parametrů s názvem main.parameters.json. Soubor parametrů obsahuje pouze parametry bez výchozích hodnot nakonfigurovaných v souboru Bicep.

instalovat

Příkaz install přidá rozhraní příkazového řádku Bicep do místního prostředí a je dostupný jenom prostřednictvím Azure CLI. Další informace najdete v tématu Instalace nástrojů Bicep.

Pokud chcete nainstalovat nejnovější verzi, použijte:

N/A

Pokud chcete nainstalovat konkrétní verzi, použijte následující příkaz:

N/A

jsonrpc

Příkaz jsonrpc spustí rozhraní příkazového řádku Bicep s rozhraním JSON-RPC. Pomocí tohoto rozhraní můžete programově pracovat se strukturovaným výstupem. Při kompilaci více souborů se také vyhnete zpožděním při spuštění za studena. Toto nastavení podporuje vytváření knihoven pro práci s Bicep soubory programově v jiných než .NET jazycích.

Formát přenosu pro odesílání a příjem vstupu a výstupu je oddělený záhlavím. Používá následující strukturu, kde \r a \n představuje znaky návratu na začátek řádku a odřádkování:

Content-Length: <length>\r\n\r\n<message>\r\n\r\n
  • <length> je délka <message> řetězce, včetně koncového \r\n\r\nřetězce .
  • <message> je nezpracovaná zpráva JSON.

Příklad:

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

Následující metody jsou k dispozici prostřednictvím rozhraní JSON-RPC:

  • bicep/format

    Formátuje soubor Bicep.

    • Požadavek:

      {
        "jsonrpc": "2.0",
        "id": 1,
        "method": "bicep/format",
        "params": {
          "path": "/path/to/file.bicep"
        }
      }
      
    • Odpověď:

      {
        "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"
        }
      }
      

      Při úspěchu se vrátí "success": true s obsahem, který obsahuje formátovaný zdroj Bicep. Při selhání "success": false s diagnostics popisem selhání.

  • bicep/version

    Vrátí verzi rozhraní příkazového řádku Bicep.

    • Požadavek:

      {
        "jsonrpc": "2.0",
        "id": 0,
        "method": "bicep/version",
        "params": {}
      }
      
    • Odpověď:

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

Dostupné metody a těla žádostí a odpovědí najdete v tématu ICliJsonRpcProtocol.cs. Příklad vytvoření připojení JSONRPC a práce se soubory Bicep programově pomocí Node najdete v tématu jsonrpc.test.ts.

Použití pojmenovaného kanálu

Pomocí následující syntaxe se připojte k existujícímu pojmenovaném kanálu jako klient JSONRPC:

bicep jsonrpc --pipe <named_pipe>`

<named_pipe> je existující pojmenovaný kanál pro připojení klienta JSONRPC k.

Připojení k pojmenované kanálu v systému macOS nebo Linux:

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

Připojení k pojmenované rourou na Windows:

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

Další příklady najdete v tématu C# a node.js.

Použití pro soket TCP

Pomocí následující syntaxe se připojte k existujícímu soketu TCP jako klientovi JSONRPC:

bicep jsonrpc --socket <tcp_socket>

<tcp_socket> je číslo soketu, ke kterému se klient JSONRPC připojuje.

Připojení k soketu TCP:

bicep jsonrpc --socket 12345

Využití pro stdin a stdout

Ke spuštění rozhraní JSONRPC použijte následující syntaxi. Použití stdin a stdout pro zprávy:

bicep jsonrpc --stdio

chomáče vláken bavlny

Příkaz lint vrátí chyby a pravidlo linter porušení Bicep souboru.

bicep lint main.bicep

Pokud váš soubor Bicep obsahuje modul, který odkazuje na externí registr, příkaz lint automaticky volá restore. Příkaz restore získá soubor z registru a uloží ho do místní mezipaměti.

Poznámka:

Příkaz restore neaktualizuje mezipaměť. Další informace najdete v tématu obnovení.

Pokud chcete zabránit automatickému obnovení, použijte --no-restore přepínač:

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

Proces lint s přepínačem --no-restore selže, pokud některý z externích modulů ještě není uložený v mezipaměti:

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

Když se zobrazí tato chyba, spusťte lint příkaz bez --no-restore přepínače nebo nejprve spusťte bicep restore .

list-versions

Příkaz list-versions vrátí všechny dostupné verze rozhraní příkazového řádku Bicep. Pomocí tohoto příkazu zjistíte, jestli chcete upgradovat nebo nainstalovat novou verzi. Tento příkaz je k dispozici pouze prostřednictvím Azure CLI.

N/A

publikovat

Příkaz publish přidá modul do registru. Registr kontejneru Azure musí existovat a publikování účtu do registru musí mít správná oprávnění. Další informace o nastavení registru modulů najdete v tématu Použití privátního registru pro moduly Bicep. Pokud chcete publikovat modul, musí mít účet správný profil a oprávnění pro přístup k registru. Prioritu profilu a přihlašovacích údajů můžete nakonfigurovat pro ověřování v registru v konfiguračním souboru Bicep.

Po publikování souboru do registru na něj můžete odkazovat v modulu.

K použití příkazu publish a parametru --documentationUri//-d musíte mít Bicep CLI verze 0.14.X nebo novější.

Pokud chcete publikovat modul do registru, použijte:

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

Příklad:

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

Příkaz publish nerozpozná aliasy zadané v souboru bicepconfig.json. Zadejte úplnou cestu k modulu.

Upozorňující

Publikování do stejného cíle přepíše starý modul. Zvýšení verze při aktualizaci.

obnovení

Když soubor Bicep používá moduly, které publikujete do registru, příkaz restore získá kopie všech požadovaných modulů z registru. Tyto kopie se ukládají v místní mezipaměti. Soubor Bicep lze sestavit pouze v případech, kdy jsou externí soubory k dispozici v místní mezipaměti. Normálně není spuštění obnovení nutné, protože se automaticky aktivuje procesem sestavení.

Pokud chcete obnovit externí moduly do místní mezipaměti, musí mít účet správný profil a oprávnění pro přístup k registru. Můžete nakonfigurovat prioritu profile a přihlašovacích údajů pro ověřování v registru v konfiguračním souboru Bicep.

Pokud chcete použít příkaz restore, musíte mít rozhraní příkazového řádku Bicep cli verze 0.14.X nebo novější.

Pokud chcete externí moduly pro soubor obnovit ručně, použijte:

bicep restore <bicep-file>

Zadaný Bicep soubor je soubor, který chcete nasadit. Musí obsahovat modul, který odkazuje na registr. Můžete například obnovit následující soubor:

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

Místní mezipaměť najdete v:

  • Zapnuto Windows

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

    /home/<username>/.bicep
    
  • Na Macu

    ~/.bicep
    

Příkaz restore neaktualizuje mezipaměť, pokud už je modul uložený v mezipaměti. Pokud chcete mezipaměť aktualizovat, můžete buď odstranit cestu modulu z mezipaměti, nebo použít --force přepínač s příkazem restore .

snímek

Pomocí Bicep CLI verze 0.41.2 nebo novější můžete pomocí příkazu snapshot vytvořit normalizovanou deterministické reprezentaci nasazení Bicep ze souboru .bicepparam. Tento snímek můžete porovnat s pozdějšími snímky, abyste pochopili, jaké změny by refaktor způsobily, aniž byste museli cokoli nasadit do Azure. Tento příkaz je užitečný zejména pro:

  • Vizuální rozdíly: Zobrazení přesně toho, jak refaktor (například přesun kódu do modulu) mění základní definice prostředků.
  • Komplexní výrazy: Vysvětlení toho, co se ve skutečnosti vyhodnocuje jako složitý řetězec nebo proměnná před nasazením
  • Ověřování CI/CD: Automatické zachytávání nezamýšlených změn v logice infrastruktury během žádostí o přijetí změn

Vytvoření snímku

Tento příkaz vygeneruje .snapshot.json soubor. Tento soubor je "normalizován", což znamená, že odstraňuje šum, jako jsou hranice modulů, abyste se mohli soustředit na samotné prostředky.

bicep snapshot --mode overwrite <bicep-param-file>

Následující soubor JSON ukazuje příklad snímku:

{
  "predictedResources": [
    {
      "id": "[format('/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.Storage/storageAccounts/stmyappstorage001', subscription().subscriptionId, resourceGroup().name)]",
      "type": "Microsoft.Storage/storageAccounts",
      "name": "stmyappstorage001",
      "apiVersion": "2025-01-01",
      "location": "eastus",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2"
    }
  ],
  "diagnostics": []
}

Ověření změn

Po vytvoření snímku spusťte příkaz v režimu ověření. Porovná váš aktuální Bicep kód s uloženým snímkem a zobrazí rozdíl vizuálu, podobně jako co-if příkaz, ale zcela místní.

bicep snapshot --mode validate <bicep-param-file>

Ukázkový výstup vypadá takto:

PS C:\bicep> bicep snapshot --mode validate main.bicepparam
Snapshot validation failed. Expected no changes, but found the following:

Scope: <unknown>

  ~ [format('/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.Storage/storageAccounts/stmyappstorage001', subscription().subscriptionId, resourceGroup().name)]
    ~ apiVersion: "2025-01-01" => "2025-06-01"
    ~ sku.name:   "Standard_LRS" => "Standard_GRS"

Ověření snímku selhalo, značí rozdíly mezi těmito dvěma snímky.

Bicep snímek rozhraní příkazového řádku a citlivostní analýza mají tyto rozdíly:

Vlastnost bicep snapshot az deployment group what-if
Spuštění Pouze místní (offline) Cloudové (online)
Porovnání Porovná kód vs. uložený soubor. Porovná kód vs. živý stav Azure.
Rychlost Extrémně rychlá Pomalejší (vyžaduje volání rozhraní API)
Případ použití Refaktoring a testování logiky Konečná kontrola před nasazením

Poskytnutí kontextu

Při spuštění Bicep snímku provede rozhraní příkazového řádku místní vyhodnocení kódu. Vzhledem k tomu, že s Azure nemluví, nemůže "požádat" cloud o ID vašeho předplatného ani název aktuální skupiny prostředků.

Pokud váš kód používá funkce prostředí (například subscription().id), snímek selže nebo vrátí zástupné symboly, pokud nezadáte konkrétní kontext prostřednictvím argumentů rozhraní příkazového řádku.

Pokud chcete simulovat skutečné prostředí nasazení, můžete předat následující příznaky:

Argument Účel Příklad hodnoty
--subscription-id Nahradí hodnotu vrácenou hodnotou. subscription().subscriptionId 00000000-1111-2222-3333-444444444444
--resource-group Nahradí hodnotu vrácenou hodnotou. resourceGroup().name my-production-rg
--location Nastaví výchozí umístění pro deployment().location westeurope
--tenant-id Nahradí hodnotu vrácenou hodnotou. tenant().tenantId 72f988bf-86f1-41af-91ab-2d7cd011db47
--management-group Nahradí hodnotu vrácenou hodnotou. managementGroup().name my-corp-mg
bicep snapshot main.bicepparam \
  --subscription-id 00000000-0000-0000-0000-000000000000 \
  --resource-group my-temp-rg \
  --location eastus \
  --mode overwrite

inovace

Příkaz upgrade aktualizuje nainstalovanou verzi nejnovější verzí. Tento příkaz je k dispozici pouze prostřednictvím Azure CLI.

N/A

verze

Příkaz version vrátí vaši nainstalovanou verzi:

bicep --version

Pokud jste rozhraní příkazového řádku Bicep nenainstalovali, zobrazí se chybová zpráva s informací, že Bicep rozhraní příkazového řádku nebylo nalezeno.

Příkaz zobrazí číslo verze:

Bicep CLI version 0.29.45 (57a44c0230)

Další kroky

Další informace o nasazení souboru Bicep najdete tady: