Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo descreve os comandos que pode usar na CLI do Bicep. Pode executar estes comandos usando a Azure CLI ou invocando diretamente os comandos da CLI do Bicep. Cada método requer um processo de instalação distinto. Para mais informações sobre instalações, consulte Azure CLI e Azure PowerShell.
Esta orientação mostra como executar os comandos na CLI do Azure CLI. Ao executar comandos no Azure CLI, inicie-os com az. Se não estiveres a usar o Azure CLI, executa os comandos sem az no início de cada um. Por exemplo, az bicep build torna-se bicep build, e az bicep version torna-se bicep --version.
compilação
O comando build converte um ficheiro de Bicep num modelo de Azure Resource Manager JSON (template ARM). Normalmente, não precisas de executar este comando porque ele corre automaticamente quando implementas um ficheiro Bicep. Executa-o manualmente quando quiseres ver o modelo JSON ARM criado a partir do teu ficheiro Bicep.
Usar qualquer uma das seguintes funcionalidades do Bicep permite automaticamente a geração de código da versão 2.0 da linguagem:
- Tipos definidos pelo usuário
- funções definidas pelo utilizador
- Importações em tempo de compilação
- características experimentais
O exemplo seguinte converte um ficheiro Bicep chamado main.bicep para um template ARM chamado main.json. O novo ficheiro é criado no mesmo diretório do ficheiro Bicep:
O próximo exemplo salva main.json em um diretório diferente:
O exemplo seguinte especifica o nome e a localização do ficheiro a criar:
Para imprimir o ficheiro no stdout, utilize:
Se o seu ficheiro Bicep incluir um módulo que faz referência a um registo externo, o comando build chama automaticamente restore. O restore comando obtém o arquivo do registro e o armazena no cache local.
Nota
O restore comando não atualiza o cache. Para obter mais informações, consulte restaurar.
Para evitar a restauração automática, use o --no-restore interruptor:
bicep build --no-restore <bicep-file>
Para usar o switch --no-restore, deve ter Bicep CLI versão 0.4.X ou posterior.
O processo de compilação com o --no-restore switch falhará se um dos módulos externos ainda não estiver armazenado em cache:
The module with reference "br:exampleregistry.azurecr.io/bicep/modules/storage:v1" hasn't been restored.
Quando você receber esse erro, execute o build comando sem a --no-restore opção ou execute bicep restore primeiro.
construir-params
O build-params comando cria um .bicepparam arquivo em um arquivo de parâmetros JSON:
Este comando converte um arquivo de parâmetros params.bicepparam em um arquivo de parâmetros JSON params.json .
descompilar
O comando decompile converte um template JSON ARM num ficheiro Bicep:
Este comando cria um arquivo chamado main.bicep no mesmo diretório que main.json. Se main. bicep existe no mesmo diretório, use o switch --force para sobrescrever o ficheiro de Bicep existente.
Para mais informações sobre o uso deste comando, veja Decompile JSON ARM template to Bicep.
descompilar-params
O decompile-params comando descompila um arquivo de parâmetros JSON para um arquivo de .bicepparam parâmetros.
bicep decompile-params azuredeploy.parameters.json --bicep-file ./dir/main.bicep
Este comando descompila um arquivo de parâmetros azuredeploy.parameters.json em um arquivo azuredeploy.parameters.bicepparam . Use --bicep-file para especificar o caminho para o ficheiro Bicep (relativamente ao ficheiro .bicepparam) que está referenciado na declaração using.
format
O comando format formata um ficheiro Bicep para que siga as convenções de estilo recomendadas. Pensa nele como um formador de código ou "mais bonito" para os teus ficheiros Bicep. Tem a mesma função do atalho SHIFT+ALT+F no Visual Studio Code.
generate-params
O comando generate-params constrói um ficheiro de parâmetros a partir do ficheiro Bicep dado e atualiza-o se existir um ficheiro de parâmetros existente.
bicep generate-params main.bicep --output-format bicepparam --include-params all
Este comando cria um ficheiro de parâmetros de Bicep chamado main.bicepparam. O ficheiro de parâmetros contém todos os parâmetros do ficheiro Bicep, estejam ou não configurados com valores padrão.
Este comando cria um arquivo de parâmetros chamado main.parameters.json. O ficheiro de parâmetros contém apenas os parâmetros sem valores predefinidos configurados no ficheiro Bicep.
instalar
O comando install adiciona a CLI Bicep ao teu ambiente local, e só está disponível através do Azure CLI. Para mais informações, consulte Instale Bicep ferramentas.
Para instalar a versão mais recente, use:
Para instalar uma versão específica, use o seguinte comando:
jsonrpc
O comando jsonrpc executa a CLI Bicep com uma interface JSON-RPC. Ao usar esta interface, pode interagir programaticamente com a saída estruturada. Também evita atrasos no arranque a frio ao compilar vários ficheiros. Esta configuração suporta a construção de bibliotecas para interagir programaticamente com ficheiros Bicep em linguagens não .NET.
O formato de fio para enviar e receber entrada e saída é delimitado por cabeçalhos. Utiliza a seguinte estrutura, onde \r e \n representam caracteres de retorno de carro e de avanço de linha:
Content-Length: <length>\r\n\r\n<message>\r\n\r\n
-
<length>é o<message>comprimento da cadeia de caracteres, incluindo o trailing\r\n\r\n. -
<message>é a mensagem JSON bruta.
Por exemplo:
Content-Length: 72\r\n\r\n{"jsonrpc": "2.0", "id": 0, "method": "bicep/version", "params": {}}\r\n\r\n
Os seguintes métodos estão disponíveis através da interface JSON-RPC:
bíceps/formato
Formata um ficheiro Bicep.
O pedido:
{ "jsonrpc": "2.0", "id": 1, "method": "bicep/format", "params": { "path": "/path/to/file.bicep" } }A resposta:
{ "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" } }Em caso de sucesso,
"success": trueé devolvido, com conteúdos a contendo a Bicep fonte formatada. Sobre o fracasso,"success": falsecomdiagnosticsa descrição do fracasso.
bíceps/versão
Devolve a versão do Bicep CLI.
O pedido:
{ "jsonrpc": "2.0", "id": 0, "method": "bicep/version", "params": {} }A resposta:
{ "jsonrpc": "2.0", "id": 0, "result": { "version": "0.24.211" } }
Para os métodos disponíveis e órgãos de pedido e resposta, veja ICliJsonRpcProtocol.cs.
Para um exemplo de estabelecer uma ligação JSONRPC e interagir programaticamente com Bicep ficheiros usando Node, veja jsonrpc.test.ts.
Uso para pipe nomeado
Use a sintaxe a seguir para se conectar a um pipe nomeado existente como um cliente JSONRPC:
bicep jsonrpc --pipe <named_pipe>`
<named_pipe> é um pipe nomeado existente para conectar o cliente JSONRPC.
Para se ligar a um pipe nomeado no macOS ou Linux:
Para ligar a um tubo nomeado no Windows:
bicep jsonrpc --pipe \\.\pipe\\bicep-81375a8084b474fa2eaedda1702a7aa40e2eaa24b3.sock`
Para mais exemplos, veja C# e node.js.
Uso para soquete TCP
Use a sintaxe a seguir para se conectar a um soquete TCP existente como um cliente JSONRPC:
bicep jsonrpc --socket <tcp_socket>
<tcp_socket> é o número do soquete ao qual o cliente JSONRPC se conecta.
Para ligar a um soquete TCP:
Uso para stdin e stdout
Para executar a interface JSONRPC, use a seguinte sintaxe. Utilização stdin e stdout para mensagens:
fiapos
O comando lint devolve os erros e as violações da regra linter de um ficheiro Bicep.
Se o seu ficheiro Bicep incluir um módulo que faz referência a um registo externo, o comando lint chama automaticamente restore. O restore comando obtém o arquivo do registro e o armazena no cache local.
Nota
O restore comando não atualiza o cache. Para obter mais informações, consulte restaurar.
Para evitar a restauração automática, use o --no-restore interruptor:
O processo lint com o --no-restore switch falhará se um dos módulos externos ainda não estiver armazenado em cache:
The module with reference "br:exampleregistry.azurecr.io/bicep/modules/storage:v1" has not been restored.
Quando você receber esse erro, execute o lint comando sem a --no-restore opção ou execute bicep restore primeiro.
lista-versões
O comando list-versions devolve todas as versões disponíveis da CLI Bicep. Use este comando para ver se deseja atualizar ou instalar uma nova versão. Este comando só está disponível através da Azure CLI.
publicar
O publish comando adiciona um módulo a um registro. O registo de contentores do Azure deve existir, e a conta que publica no registo deve ter as permissões corretas. Para mais informações sobre a criação de um registo de módulos, consulte Use registo privado para Bicep módulos. Para publicar um módulo, a conta deve ter o perfil e as permissões corretas para acessar o registro. Pode configurar o perfil e a precedência de credenciais para autenticação no registo no ficheiro de configuração Bicep.
Depois de publicar o arquivo no registro, você pode fazer referência a ele em um módulo.
Deve ter Bicep CLI versão 0.14.X ou posterior para usar o comando publish e o parâmetro --documentationUri/-d.
Para publicar um módulo em um registro, use:
bicep publish <bicep-file> --target br:<registry-name>.azurecr.io/<module-path>:<tag> --documentationUri <documentation-uri>
Por exemplo:
bicep publish storage.bicep --target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 --documentationUri https://www.contoso.com/exampleregistry.html
O publish comando não reconhece aliases especificados em um arquivo bicepconfig.json. Forneça o caminho completo do módulo.
Aviso
A publicação no mesmo destino substitui o módulo antigo. Incremente a versão ao atualizar.
repor
Quando o teu ficheiro Bicep usa módulos que publicas num registo, o comando restore obtém cópias de todos os módulos necessários do registo. Ele armazena essas cópias em um cache local. Um ficheiro Bicep só pode ser construído quando os ficheiros externos estão disponíveis na cache local. Normalmente, a execução da restauração não é necessária, pois ela é acionada automaticamente pelo processo de compilação.
Para restaurar módulos externos para o cache local, a conta deve ter o perfil e as permissões corretas para acessar o registro. Pode configurar o perfil e a precedência de credenciais para autenticação no registo no ficheiro de configuração Bicep.
Para usar o comando restore, deve ter Bicep CLI versão 0.14.X ou posterior.
Para restaurar manualmente os módulos externos de um arquivo, use:
O ficheiro Bicep que forneces é o ficheiro que queres implementar. Ele deve conter um módulo que vincula a um registro. Por exemplo, você pode restaurar o seguinte arquivo:
module stgModule 'br:exampleregistry.azurecr.io/bicep/modules/storage:v1' = {
name: 'storageDeploy'
params: {
storagePrefix: 'examplestg1'
}
}
Encontras a cache local em:
No Windows
%USERPROFILE%\.bicep\br\<registry-name>.azurecr.io\<module-path\<tag>No Linux
/home/<username>/.bicepNo Mac
~/.bicep
O restore comando não atualiza o cache se um módulo já estiver armazenado em cache. Para atualizar o cache, você pode excluir o caminho do módulo do cache ou usar o --force switch com o restore comando.
instantâneo
Ao usar Bicep CLI v0.41.2 ou mais recente, pode usar o comando snapshot para criar uma representação normalizada e determinística de uma implementação Bicep a partir de um ficheiro .bicepparam. Podes comparar este snapshot com snapshots posteriores para perceberes que alterações um refatorado causaria, sem implementar nada no Azure. Este comando é particularmente útil para:
- Diferenças Visuais: Ver exatamente como uma refatoração (como mover código para um módulo) altera as definições de recursos subjacentes.
- Expressões Complexas: Compreender a que uma string ou variável complexa realmente avalia antes da implementação.
- Validação CI/CD: Detetação automática de alterações não intencionais na lógica da infraestrutura durante pull requests.
Criar um instantâneo
Este comando gera um .snapshot.json ficheiro. Este ficheiro é "normalizado", ou seja, remove ruído como os limites dos módulos para que possas focar-te nos próprios recursos.
O ficheiro JSON seguinte mostra um exemplo de snapshot:
{
"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": []
}
Validar alterações
Depois de criar um snapshot, execute o comando em modo validar. Compara o teu código de Bicep atual com o snapshot guardado e mostra uma diferença visual, tal como o comando what-if mas totalmente local.
Uma saída de exemplo é a seguinte:
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"
"Validação de snapshot falhada" indica diferenças entre os dois snapshots.
O snapshot do Bicep CLI e o What-If apresentam estas diferenças:
| Feature | bicep snapshot |
az deployment group what-if |
|---|---|---|
| Execução | Apenas Local (Offline) | Baseado na cloud (Online) |
| Comparação | Compara código com um ficheiro guardado | Compara código vs. estado real do Azure |
| Velocidade | Extremamente rápido | Mais lento (requer chamadas de API) |
| Caso de uso | Refatoração e testes lógicos | Verificação final pré-desdobramento |
Forneça contexto
Ao executar o snapshot do Bicep, a CLI realiza uma avaliação local do seu código. Como não comunica com o Azure, não pode "pedir" à cloud o seu ID de Subscrição ou o nome atual do Grupo de Recursos.
Se o teu código usar funções de ambiente (como subscription().id), o snapshot falhará ou devolverá marcadores de posição, a menos que forneças contexto específico através de argumentos da linha de controlo (CLI).
Para simular um ambiente real de implantação, pode passar as seguintes bandeiras:
| Argumento | Propósito | Valor de Exemplo |
|---|---|---|
--subscription-id |
Substitui o valor devolvido por subscription().subscriptionId |
00000000-1111-2222-3333-444444444444 |
--resource-group |
Substitui o valor devolvido por resourceGroup().name |
my-production-rg |
--location |
Define a localização padrão para deployment().location |
westeurope |
--tenant-id |
Substitui o valor devolvido por tenant().tenantId |
72f988bf-86f1-41af-91ab-2d7cd011db47 |
--management-group |
Substitui o valor devolvido por 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
actualização
O upgrade comando atualiza a versão instalada com a versão mais recente. Este comando só está disponível através da Azure CLI.
versão
O version comando retorna a versão instalada:
bicep --version
Se não instalaste a CLI do Bicep, vês uma mensagem de erro a dizer que a CLI do Bicep não foi encontrada.
O comando mostra o número da versão:
Bicep CLI version 0.29.45 (57a44c0230)
Próximos passos
Para saber mais sobre como implementar um ficheiro Bicep, veja: