Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel worden de opdrachten beschreven die u kunt gebruiken in de Bicep CLI. U kunt deze opdrachten uitvoeren met behulp van de Azure CLI of door rechtstreeks Bicep CLI-opdrachten aan te roepen. Voor elke methode is een afzonderlijk installatieproces vereist. Zie Azure CLI en Azure PowerShell voor meer informatie over installaties.
Deze richtlijnen laten zien hoe u de opdrachten uitvoert in de Azure CLI. Wanneer u opdrachten uitvoert in de Azure CLI, start u deze met az. Als u de Azure CLI niet gebruikt, voert u de opdrachten uit zonder az aan het begin van elk bestand. Wordt bijvoorbeeld az bicep buildbicep build, en az bicep version wordt bicep --version.
build
Met de opdracht build converteert u een Bicep-bestand naar een ARM-sjabloon (JSON Azure Resource Manager sjabloon). Normaal gesproken hoeft u deze opdracht niet uit te voeren omdat deze automatisch wordt uitgevoerd wanneer u een Bicep-bestand implementeert. Voer deze handmatig uit wanneer u de JSON ARM-sjabloon wilt zien die is gemaakt op basis van uw Bicep-bestand.
Als u een van de volgende Bicep functies gebruikt, wordt taalversie 2.0-code automatisch gegenereerd:
- door de gebruiker gedefinieerde typen
- door de gebruiker gedefinieerde functies
- compilatietijdimport
- experimentele functies
In het volgende voorbeeld wordt een Bicep-bestand met de naam main.bicep geconverteerd naar een ARM-sjabloon met de naam main.json. Het nieuwe bestand wordt gemaakt in dezelfde map als het Bicep-bestand:
In het volgende voorbeeld wordt main.json opgeslagen in een andere map:
In het volgende voorbeeld wordt de naam en locatie van het bestand opgegeven dat moet worden gemaakt:
Als u het bestand wilt stdoutafdrukken, gebruikt u:
Als uw Bicep bestand een module bevat die verwijst naar een extern register, roept de opdracht build automatisch restore aan. Met de restore opdracht wordt het bestand opgehaald uit het register en opgeslagen in de lokale cache.
Notitie
De restore opdracht vernieuwt de cache niet. Zie herstellen voor meer informatie.
Als u automatische herstel wilt voorkomen, gebruikt u de --no-restore schakeloptie:
bicep build --no-restore <bicep-file>
Als u de --no-restore-switch wilt gebruiken, moet u Bicep CLI versie 0.4.X of hoger hebben.
Het buildproces met de switch mislukt als een van de externe modules nog niet in de --no-restore cache is opgeslagen:
The module with reference "br:exampleregistry.azurecr.io/bicep/modules/storage:v1" hasn't been restored.
Wanneer u deze fout krijgt, voert u de build opdracht uit zonder de --no-restore switch of voert u deze eerst uit bicep restore .
build-params
Met de build-params opdracht wordt een .bicepparam bestand gebouwd in een JSON-parameterbestand:
Met deze opdracht wordt een parameterbestand params.bicepparam geconverteerd naar een params.json JSON-parametersbestand.
decompileren
Met de opdracht decompile converteert u een JSON ARM-sjabloon naar een Bicep-bestand:
Met deze opdracht maakt u een bestand met de naam main.bicep in dezelfde map als main.json. Als main. bicep bestaat in dezelfde map, gebruikt u de --force om het bestaande Bicep-bestand te overschrijven.
Zie Decompile JSON ARM-sjabloon voor Bicep voor meer informatie over het gebruik van deze opdracht.
decompile-params
Met de decompile-params opdracht wordt een JSON-parameterbestand gedecompileert naar een .bicepparam parameterbestand.
bicep decompile-params azuredeploy.parameters.json --bicep-file ./dir/main.bicep
Met deze opdracht wordt een azuredeploy.parameters.json parameterbestand gedecompileert in een bestand azuredeploy.parameters.bicepparam . Gebruik --bicep-file om het pad naar het Bicep-bestand op te geven (ten opzichte van het bestand .bicepparam) waarnaar wordt verwezen in de declaratie using.
indeling
De opdracht format formatteert een Bicep bestand, zodat het de aanbevolen stijlconventies volgt. U kunt het beschouwen als een code-formatter of 'prettier' voor uw Bicep bestanden. Het heeft dezelfde functie als de snelkoppeling SHIFT+ALT+F in Visual Studio Code.
generate-params
Met de opdracht generate-params wordt een parameterbestand gebouwd op basis van het opgegeven Bicep-bestand en bijgewerkt als er een bestaand parameterbestand is.
bicep generate-params main.bicep --output-format bicepparam --include-params all
Met deze opdracht maakt u een Bicep parameterbestand met de naam main.bicepparam. Het parameterbestand bevat alle parameters in het Bicep-bestand, ongeacht of het is geconfigureerd met standaardwaarden of niet.
Met deze opdracht maakt u een parameterbestand met de naam main.parameters.json. Het parameterbestand bevat alleen de parameters zonder standaardwaarden die zijn geconfigureerd in het Bicep-bestand.
installeren
Met de opdracht install wordt de Bicep CLI aan uw lokale omgeving toegevoegd en is deze alleen beschikbaar via de Azure CLI. Zie Install Bicep tools voor meer informatie.
Als u de nieuwste versie wilt installeren, gebruikt u:
Gebruik de volgende opdracht om een specifieke versie te installeren:
jsonrpc
Met de opdracht jsonrpc wordt de Bicep CLI uitgevoerd met een JSON-RPC interface. Met behulp van deze interface kunt u programmatisch communiceren met gestructureerde uitvoer. U voorkomt ook vertragingen met koude start bij het compileren van meerdere bestanden. Deze installatie ondersteunt het bouwen van bibliotheken voor interactie met Bicep bestanden via programmacode in niet-.NET talen.
De draadindeling voor het verzenden en ontvangen van invoer en uitvoer is door headers gescheiden. Hierbij wordt de volgende structuur gebruikt, waarbij \r regelterugloop- \n en regelinvoertekens worden weergegeven:
Content-Length: <length>\r\n\r\n<message>\r\n\r\n
-
<length>is de lengte van de<message>tekenreeks, inclusief de volgreeks\r\n\r\n. -
<message>is het onbewerkte JSON-bericht.
Voorbeeld:
Content-Length: 72\r\n\r\n{"jsonrpc": "2.0", "id": 0, "method": "bicep/version", "params": {}}\r\n\r\n
De volgende methoden zijn beschikbaar via de JSON-RPC-interface:
bicep/format
Hiermee wordt een Bicep-bestand opgemaakt.
De aanvraag:
{ "jsonrpc": "2.0", "id": 1, "method": "bicep/format", "params": { "path": "/path/to/file.bicep" } }Het antwoord:
{ "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" } }Bij succes wordt
"success": truegeretourneerd, waarbij de inhoud de opgemaakte Bicep bron bevat. Bij een fout,"success": falsemetdiagnosticseen beschrijving van de fout.
bicep/version
Retourneert de versie van de Bicep CLI.
De aanvraag:
{ "jsonrpc": "2.0", "id": 0, "method": "bicep/version", "params": {} }Het antwoord:
{ "jsonrpc": "2.0", "id": 0, "result": { "version": "0.24.211" } }
Zie ICliJsonRpcProtocol.cs voor de beschikbare methoden en aanvraag- en antwoordteksten.
Zie jsonrpc.test.ts voor een voorbeeld van het maken van een JSONRPC-verbinding en het programmatisch werken met Bicep bestanden.
Gebruik voor benoemde pijp
Gebruik de volgende syntaxis om verbinding te maken met een bestaande benoemde pijp als een JSONRPC-client:
bicep jsonrpc --pipe <named_pipe>`
<named_pipe> is een bestaande benoemde pijp waarmee de JSONRPC-client wordt verbonden.
Verbinding maken met een benoemde pipe in macOS of Linux:
Verbinding maken met een benoemde pijp op Windows:
bicep jsonrpc --pipe \\.\pipe\\bicep-81375a8084b474fa2eaedda1702a7aa40e2eaa24b3.sock`
Zie C# en node.js voor meer voorbeelden.
Gebruik voor TCP-socket
Gebruik de volgende syntaxis om verbinding te maken met een bestaande TCP-socket als een JSONRPC-client:
bicep jsonrpc --socket <tcp_socket>
<tcp_socket> is het socketnummer waarmee de JSONRPC-client verbinding maakt.
Verbinding maken met een TCP-socket:
Gebruik voor stdin en stdout
Gebruik de volgende syntaxis om de JSONRPC-interface uit te voeren. Gebruik stdin en stdout voor berichten:
pluis
De opdracht lint retourneert de fouten en linterregel schendingen van een Bicep-bestand.
Als uw Bicep bestand een module bevat die verwijst naar een extern register, roept de opdracht lint automatisch restore aan. Met de restore opdracht wordt het bestand opgehaald uit het register en opgeslagen in de lokale cache.
Notitie
De restore opdracht vernieuwt de cache niet. Zie herstellen voor meer informatie.
Als u automatische herstel wilt voorkomen, gebruikt u de --no-restore schakeloptie:
Het lintproces met de switch mislukt als een van de externe modules nog niet in de --no-restore cache is opgeslagen:
The module with reference "br:exampleregistry.azurecr.io/bicep/modules/storage:v1" has not been restored.
Wanneer u deze fout krijgt, voert u de lint opdracht uit zonder de --no-restore switch of voert u deze eerst uit bicep restore .
list-versions
De opdracht list-versions retourneert alle beschikbare versies van de Bicep CLI. Gebruik deze opdracht om te zien of u een nieuwe versie wilt upgraden of installeren . Deze opdracht is alleen beschikbaar via de Azure CLI.
publish
Met de publish opdracht wordt een module toegevoegd aan een register. Het Azure containerregister moet bestaan en het account dat naar het register wordt gepubliceerd, moet over de juiste machtigingen beschikken. Zie Gebruik privéregister voor Bicep modules voor meer informatie over het instellen van een moduleregister. Als u een module wilt publiceren, moet het account over het juiste profiel en de juiste machtigingen beschikken om toegang te krijgen tot het register. U kunt het profiel en de referentieprioriteit configureren voor verificatie bij het register in het Bicep configuratiebestand.
Nadat u het bestand naar het register hebt gepubliceerd, kunt u ernaar verwijzen in een module.
U moet Bicep CLI versie 0.14.X of hoger hebben om de opdracht publish en de parameter --documentationUri/-d te gebruiken.
Als u een module naar een register wilt publiceren, gebruikt u:
bicep publish <bicep-file> --target br:<registry-name>.azurecr.io/<module-path>:<tag> --documentationUri <documentation-uri>
Voorbeeld:
bicep publish storage.bicep --target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 --documentationUri https://www.contoso.com/exampleregistry.html
De publish opdracht herkent geen aliassen die zijn opgegeven in een bicepconfig.json-bestand. Geef het volledige modulepad op.
Waarschuwing
Als u naar hetzelfde doel publiceert, wordt de oude module overschreven. Verhoog de versie bij het bijwerken.
De pagina Restore
Wanneer uw Bicep-bestand modules gebruikt die u naar een register publiceert, worden met de opdracht restore kopieën van alle vereiste modules uit het register opgehaald. Deze kopieën worden opgeslagen in een lokale cache. Een Bicep-bestand kan alleen worden gebouwd wanneer de externe bestanden beschikbaar zijn in de lokale cache. Normaal gesproken is het uitvoeren van herstel niet nodig omdat deze automatisch wordt geactiveerd door het buildproces.
Als u externe modules wilt herstellen naar de lokale cache, moet het account over het juiste profiel en de juiste machtigingen beschikken om toegang te krijgen tot het register. U kunt de profile en referentieprioriteit configureren voor verificatie bij het register in het configuratiebestand Bicep.
Als u de opdracht restore wilt gebruiken, moet u Bicep CLI versie 0.14.X of hoger hebben.
Als u de externe modules voor een bestand handmatig wilt herstellen, gebruikt u:
Het Bicep bestand dat u opgeeft, is het bestand dat u wilt implementeren. Deze moet een module bevatten die is gekoppeld aan een register. U kunt bijvoorbeeld het volgende bestand herstellen:
module stgModule 'br:exampleregistry.azurecr.io/bicep/modules/storage:v1' = {
name: 'storageDeploy'
params: {
storagePrefix: 'examplestg1'
}
}
U vindt de lokale cache in:
Op Windows
%USERPROFILE%\.bicep\br\<registry-name>.azurecr.io\<module-path\<tag>In Linux
/home/<username>/.bicepOp Mac
~/.bicep
De restore opdracht vernieuwt de cache niet als een module al in de cache is opgeslagen. Als u de cache wilt vernieuwen, kunt u het modulepad uit de cache verwijderen of de --force schakeloptie gebruiken met de restore opdracht.
snapshot
Met behulp van Bicep CLI v0.41.2 of hoger kunt u de opdracht snapshot gebruiken om een genormaliseerde, deterministische weergave van een Bicep-implementatie te maken vanuit een .bicepparam-bestand. U kunt deze momentopname vergelijken met latere momentopnamen om te begrijpen welke wijzigingen een herstructurering zou veroorzaken, zonder iets te implementeren op Azure. Deze opdracht is met name handig voor:
- Visuele verschillen: Als u precies ziet hoe een herstructurering (zoals het verplaatsen van code naar een module) de onderliggende resourcedefinities wijzigt.
- Complexe expressies: inzicht in wat een complexe tekenreeks of variabele daadwerkelijk evalueert vóór de implementatie.
- CI/CD-validatie: automatisch onbedoelde wijzigingen in infrastructuurlogica detecteren tijdens pull-aanvragen.
Een momentopname maken
Met deze opdracht wordt een .snapshot.json bestand gegenereerd. Dit bestand is genormaliseerd, wat betekent dat ruis zoals modulegrenzen worden verwijderd, zodat u zich kunt richten op de resources zelf.
In het volgende JSON-bestand ziet u een voorbeeld van een momentopname:
{
"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": []
}
Wijzigingen valideren
Nadat u een momentopname hebt gemaakt, voert u de opdracht uit in de validatiemodus. Uw huidige Bicep code wordt vergeleken met de opgeslagen momentopname en toont een visuele diff, net zoals de opdracht wat-if maar volledig lokaal.
Een voorbeelduitvoer ziet er als volgt uit:
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"
'Validatie van momentopname is mislukt' geeft verschillen aan tussen de twee momentopnamen.
Bicep CLI-momentopname en wat-als deze verschillen hebben:
| Functie | bicep snapshot |
az deployment group what-if |
|---|---|---|
| Uitvoering | Alleen lokaal (offline) | Cloudgebaseerde (online) |
| Vergelijking | Vergelijkt code versus een opgeslagen bestand | Vergelijkt code versus live Azure status |
| Snelheid | Zeer snel | Trager (vereist API-aanroepen) |
| Gebruikssituatie | Herstructureren en logica testen | Laatste controle vóór implementatie |
Context opgeven
Wanneer Bicep momentopname wordt uitgevoerd, voert de CLI een lokale evaluatie van uw code uit. Omdat deze niet met Azure praat, kan deze de cloud niet 'vragen' voor uw abonnements-id of de naam van de huidige resourcegroep.
Als uw code gebruikmaakt van omgevingsfuncties (zoals subscription().id), mislukt de momentopname of retourneert de tijdelijke aanduidingen, tenzij u specifieke context opgeeft via CLI-argumenten.
Als u een echte implementatieomgeving wilt simuleren, kunt u de volgende vlaggen doorgeven:
| Argument | Doel | Voorbeeldwaarde |
|---|---|---|
--subscription-id |
Vervangt de waarde die wordt geretourneerd door subscription().subscriptionId |
00000000-1111-2222-3333-444444444444 |
--resource-group |
Vervangt de waarde die wordt geretourneerd door resourceGroup().name |
my-production-rg |
--location |
Hiermee stelt u de standaardlocatie in voor deployment().location |
westeurope |
--tenant-id |
Vervangt de waarde die wordt geretourneerd door tenant().tenantId |
72f988bf-86f1-41af-91ab-2d7cd011db47 |
--management-group |
Vervangt de waarde die wordt geretourneerd door 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
upgrade
Met upgrade de opdracht wordt uw geïnstalleerde versie bijgewerkt met de nieuwste versie. Deze opdracht is alleen beschikbaar via de Azure CLI.
version
De version opdracht retourneert de geïnstalleerde versie:
bicep --version
Als u de Bicep CLI niet hebt geïnstalleerd, ziet u een foutbericht waarin wordt aangegeven dat de Bicep CLI niet is gevonden.
Met de opdracht wordt het versienummer weergegeven:
Bicep CLI version 0.29.45 (57a44c0230)
Volgende stappen
Zie voor meer informatie over het implementeren van een Bicep-bestand: