Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här artikeln beskrivs de kommandon som du kan använda i Bicep CLI. Du kan köra dessa kommandon med hjälp av Azure CLI eller genom att direkt anropa Bicep CLI-kommandon. Varje metod kräver en distinkt installationsprocess. Mer information om installationer finns i Azure CLI och Azure PowerShell.
Den här vägledningen visar hur du kör kommandona i Azure CLI. När du kör kommandon i Azure CLI startar du dem med az. Om du inte använder Azure CLI kör du kommandona utan az i början av varje. Blir till exempel , och blir .
build
Kommandot build konverterar en Bicep fil till en JSON-Azure Resource Manager-mall (ARM-mall). Normalt behöver du inte köra det här kommandot eftersom det körs automatiskt när du distribuerar en Bicep fil. Kör den manuellt när du vill se JSON ARM-mallen som skapas från din Bicep-fil.
Om du använder någon av följande Bicep funktioner aktiveras automatiskt språkversion 2.0-kodgenerering:
- användardefinierade typer
- användardefinierade funktioner
- kompilera tidsimporter
- experimentella funktioner
I följande exempel konverteras en Bicep fil med namnet main.bicep till en ARM-mall med namnet main.json. Den nya filen skapas i samma katalog som den Bicep filen:
I nästa exempel sparas main.json till en annan katalog:
I följande exempel anges namnet och platsen för filen som ska skapas:
Om du vill skriva ut filen till använder du:
Om din Bicep fil innehåller en modul som refererar till ett externt register anropar kommandot build automatiskt restore. Kommandot hämtar filen från registret och lagrar den i den lokala cachen.
Kommentar
Kommandot uppdaterar inte cacheminnet. Mer information finns i Återställa.
Om du vill förhindra automatisk återställning använder du växeln :
bicep build --no-restore <bicep-file>
Om du vill använda växeln --no-restore måste du ha Bicep CLI version 0.4.X eller senare.
Byggprocessen med växeln misslyckas om en av de externa modulerna inte redan är cachelagrad:
The module with reference "br:exampleregistry.azurecr.io/bicep/modules/storage:v1" hasn't been restored.
När du får det här felet kör du antingen kommandot utan växeln eller kör först.
build-params
Kommandot skapar en fil i en JSON-parameterfil:
Det här kommandot konverterar en params.bicepparam-parameterfil till en params.json JSON-parameterfil.
Dekompilera
Kommandot decompile konverterar en JSON ARM-mall till en Bicep fil:
Det här kommandot skapar en fil med namnet main.bicep i samma katalog som main.json. Om main. bicep finns i samma katalog använder du växeln --force för att skriva över den befintliga Bicep filen.
Mer information om hur du använder det här kommandot finns i Decompile JSON ARM-mall till Bicep.
decompile-params
Kommandot dekompileras en JSON-parameterfil till en parameterfil.
bicep decompile-params azuredeploy.parameters.json --bicep-file ./dir/main.bicep
Det här kommandot dekompilerar en azuredeploy.parameters.json-parameterfil till en azuredeploy.parameters.bicepparam-fil . Använd --bicep-file för att ange sökvägen till filen Bicep (i förhållande till filen .bicepparam) som refereras i deklarationen using.
format
Kommandot format formaterar en Bicep fil så att den följer de rekommenderade formatkonventionerna. Se det som en kodformaterare eller "snyggare" för dina Bicep filer. Den har samma funktion som genvägen SHIFT+ALT+F i Visual Studio Code.
generate-params
Kommandot generate-params skapar en parameterfil från den angivna Bicep-filen och uppdaterar den om det finns en befintlig parameterfil.
bicep generate-params main.bicep --output-format bicepparam --include-params all
Det här kommandot skapar en Bicep parameterfil med namnet main.bicepparam. Parameterfilen innehåller alla parametrar i filen Bicep, oavsett om den är konfigurerad med standardvärden eller inte.
Det här kommandot skapar en parameterfil med namnet main.parameters.json. Parameterfilen innehåller endast parametrarna utan standardvärden som konfigurerats i filen Bicep.
installera
Kommandot install lägger till Bicep CLI i din lokala miljö och är endast tillgängligt via Azure CLI. Mer information finns i Installera Bicep verktyg.
Om du vill installera den senaste versionen använder du:
Om du vill installera en viss version använder du följande kommando:
jsonrpc
Kommandot jsonrpc kör Bicep CLI med ett JSON-RPC-gränssnitt. Med det här gränssnittet kan du interagera programmatiskt med strukturerade utdata. Du kan också undvika fördröjningar vid kallstart vid kompilering av flera filer. Den här konfigurationen stöder att skapa bibliotek för att interagera med Bicep filer programmatiskt på icke-.NET språk.
Trådformatet för att skicka och ta emot indata och utdata är sidhuvudavgränsat. Den använder följande struktur, där och representerar vagnretur och radmatningstecken:
Content-Length: <length>\r\n\r\n<message>\r\n\r\n
- är längden på strängen , inklusive den avslutande .
- är det råa JSON-meddelandet.
Till exempel:
Content-Length: 72\r\n\r\n{"jsonrpc": "2.0", "id": 0, "method": "bicep/version", "params": {}}\r\n\r\n
Följande metoder är tillgängliga via JSON-RPC-gränssnittet:
bicep/format
Formaterar en Bicep fil.
Begäran:
{ "jsonrpc": "2.0", "id": 1, "method": "bicep/format", "params": { "path": "/path/to/file.bicep" } }Svaret:
{ "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" } }Vid lyckat resultat returneras
"success": true, med innehåll som innehåller den formaterade Bicep källan. Vid fel, med att beskriva felet.
bicep/version
Returnerar versionen av Bicep CLI.
Begäran:
{ "jsonrpc": "2.0", "id": 0, "method": "bicep/version", "params": {} }Svaret:
{ "jsonrpc": "2.0", "id": 0, "result": { "version": "0.24.211" } }
Tillgängliga metoder och begärande- och svarsorgan finns i ICliJsonRpcProtocol.cs.
Ett exempel på hur du upprättar en JSONRPC-anslutning och interagerar med Bicep filer programmatiskt med hjälp av Node finns i jsonrpc.test.ts.
Användning för namngivet rör
Använd följande syntax för att ansluta till en befintlig namngiven pipe som en JSONRPC-klient:
bicep jsonrpc --pipe <named_pipe>`
är en befintlig namngiven pipe som JSONRPC-klienten ska anslutas till.
Så här ansluter du till ett namngivet rör i macOS eller Linux:
Så här ansluter du till ett namngivet rör på Windows:
bicep jsonrpc --pipe \\.\pipe\\bicep-81375a8084b474fa2eaedda1702a7aa40e2eaa24b3.sock`
Fler exempel finns i C# och node.js.
Användning för TCP-socket
Använd följande syntax för att ansluta till en befintlig TCP-socket som en JSONRPC-klient:
bicep jsonrpc --socket <tcp_socket>
är det socketnummer som JSONRPC-klienten ansluter till.
Så här ansluter du till en TCP-socket:
Användning för stdin och stdout
Om du vill köra JSONRPC-gränssnittet använder du följande syntax. Använd och för meddelanden:
ludd
Kommandot lint returnerar felen och linterregeln överträdelser av en Bicep fil.
Om din Bicep fil innehåller en modul som refererar till ett externt register anropar kommandot lint automatiskt restore. Kommandot hämtar filen från registret och lagrar den i den lokala cachen.
Kommentar
Kommandot uppdaterar inte cacheminnet. Mer information finns i Återställa.
Om du vill förhindra automatisk återställning använder du växeln :
Lintprocessen med växeln misslyckas om en av de externa modulerna inte redan är cachelagrad:
The module with reference "br:exampleregistry.azurecr.io/bicep/modules/storage:v1" has not been restored.
När du får det här felet kör du antingen kommandot utan växeln eller kör först.
listversioner
Kommandot list-versions returnerar alla tillgängliga versioner av Bicep CLI. Använd det här kommandot för att se om du vill uppgradera eller installera en ny version. Det här kommandot är endast tillgängligt via Azure CLI.
publicera
Kommandot lägger till en modul i ett register. Det Azure containerregistret måste finnas och kontopublicering till registret måste ha rätt behörigheter. Mer information om hur du konfigurerar ett modulregister finns i Använd privat register för Bicep moduler. För att kunna publicera en modul måste kontot ha rätt profil och behörighet för att få åtkomst till registret. Du kan konfigurera profil- och autentiseringsprioritet för autentisering till registret i Bicep konfigurationsfilen.
När du har publicerat filen i registret kan du referera till den i en modul.
Du måste ha Bicep CLI version 0.14.X eller senare för att kunna använda kommandot publish och parametern --documentationUri/-d.
Om du vill publicera en modul till ett register använder du:
bicep publish <bicep-file> --target br:<registry-name>.azurecr.io/<module-path>:<tag> --documentationUri <documentation-uri>
Till exempel:
bicep publish storage.bicep --target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 --documentationUri https://www.contoso.com/exampleregistry.html
Kommandot känner inte igen alias som anges i en bicepconfig.json fil. Ange den fullständiga modulsökvägen.
Varning
Publicering till samma mål skriver över den gamla modulen. Öka versionen vid uppdatering.
återställ
När Bicep-filen använder moduler som du publicerar i ett register hämtar kommandot restore kopior av alla moduler som krävs från registret. Den lagrar dessa kopior i en lokal cache. En Bicep fil kan bara skapas när de externa filerna är tillgängliga i den lokala cachen. Normalt är det inte nödvändigt att köra återställning eftersom den utlöses automatiskt av byggprocessen.
Om du vill återställa externa moduler till den lokala cachen måste kontot ha rätt profil och behörigheter för att få åtkomst till registret. Du kan konfigurera profile och autentiseringsprioritet för autentisering till registret i Bicep konfigurationsfilen.
Om du vill använda kommandot restore måste du ha Bicep CLI version 0.14.X eller senare.
Om du vill återställa de externa modulerna för en fil manuellt använder du:
Den Bicep fil som du anger är den fil som du vill distribuera. Den måste innehålla en modul som länkar till ett register. Du kan till exempel återställa följande fil:
module stgModule 'br:exampleregistry.azurecr.io/bicep/modules/storage:v1' = {
name: 'storageDeploy'
params: {
storagePrefix: 'examplestg1'
}
}
Du hittar den lokala cachen i:
På Windows
%USERPROFILE%\.bicep\br\<registry-name>.azurecr.io\<module-path\<tag>I Linux
/home/<username>/.bicepPå Mac
~/.bicep
Kommandot uppdaterar inte cacheminnet om en modul redan har cachelagrats. Om du vill uppdatera cacheminnet kan du antingen ta bort modulsökvägen från cacheminnet eller använda växeln med kommandot .
snapshot
Med hjälp av Bicep CLI v0.41.2 eller senare kan du använda kommandot snapshot för att skapa en normaliserad, deterministisk representation av en Bicep distribution från en .bicepparam fil. Du kan jämföra den här ögonblicksbilden med senare ögonblicksbilder för att förstå vilka ändringar en refaktor skulle orsaka, utan att distribuera något för att Azure. Det här kommandot är särskilt användbart för:
- Visuellaiff: Om du ser exakt hur en refaktor (som att flytta kod till en modul) ändrar de underliggande resursdefinitionerna.
- Komplexa uttryck: Förstå vad en komplex sträng eller variabel faktiskt utvärderas till före distributionen.
- CI/CD-validering: Fånga automatiskt oavsiktliga ändringar i infrastrukturlogik under pull-begäranden.
Skapa en ögonblicksbild
Det här kommandot genererar en fil. Den här filen är "normaliserad", vilket innebär att den tar bort brus som modulgränser så att du kan fokusera på själva resurserna.
Följande JSON-fil visar ett exempel på en ögonblicksbild:
{
"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": []
}
Verifiera ändringar
När du har skapat en ögonblicksbild kör du kommandot i valideringsläge. Den jämför din aktuella Bicep kod med den sparade ögonblicksbilden och visar ett visuellt diff, ungefär som kommandot what-if men helt lokalt.
Ett exempel på utdata ser ut så här:
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"
"Valideringen av ögonblicksbilden misslyckades" anger skillnader mellan de två ögonblicksbilderna.
Bicep CLI-ögonblicksbild och Vad händer om har dessa skillnader:
| Feature | bicep snapshot |
az deployment group what-if |
|---|---|---|
| Avrättning | Endast lokalt (offline) | Molnbaserad (online) |
| Jämförelse | Jämför kod jämfört med en sparad fil | Jämför kod jämfört med live-Azure tillstånd |
| Hastighet | Extremt snabb | Långsammare (kräver API-anrop) |
| Användningsfall | Refaktorisering och logiktestning | Slutlig kontroll före distribution |
Ange kontext
När du kör Bicep ögonblicksbild utför CLI en lokal utvärdering av koden. Eftersom den inte pratar med Azure kan den inte "fråga" molnet om ditt prenumerations-ID eller det aktuella resursgruppsnamnet.
Om din kod använder miljöfunktioner (t.ex . ) misslyckas ögonblicksbilden eller returnerar platshållare om du inte anger specifik kontext via CLI-argument.
Om du vill simulera en verklig distributionsmiljö kan du skicka följande flaggor:
| Argument | Avsikt | Exempelvärde |
|---|---|---|
--subscription-id |
Ersätter värdet som returneras av | 00000000-1111-2222-3333-444444444444 |
--resource-group |
Ersätter värdet som returneras av | my-production-rg |
--location |
Anger standardplatsen för | westeurope |
--tenant-id |
Ersätter värdet som returneras av | 72f988bf-86f1-41af-91ab-2d7cd011db47 |
--management-group |
Ersätter värdet som returneras av | my-corp-mg |
bicep snapshot main.bicepparam \
--subscription-id 00000000-0000-0000-0000-000000000000 \
--resource-group my-temp-rg \
--location eastus \
--mode overwrite
uppgradera
Kommandot uppdaterar den installerade versionen med den senaste versionen. Det här kommandot är endast tillgängligt via Azure CLI.
version
Kommandot returnerar den installerade versionen:
bicep --version
Om du inte har installerat Bicep CLI visas ett felmeddelande om att Bicep CLI inte hittades.
Kommandot visar versionsnumret:
Bicep CLI version 0.29.45 (57a44c0230)
Nästa steg
Mer information om hur du distribuerar en Bicep-fil finns i: