(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Como pré-visualizar alterações do Bicep com what-if

João Barros 10 de July de 2026 4 min de leitura

O comando what-if da Azure CLI mostra que recursos um ficheiro Bicep vai criar, alterar ou remover, antes de aplicares seja o que for. Funciona como uma pré-visualização — um diff da tua infraestrutura — e é a forma mais simples de evitar surpresas em produção. O melhor é que não muda nada: é uma operação segura, só de leitura. Aqui vais usar o what-if com um Storage Account de exemplo e aprender a ler o resultado.

Pré-requisitos

  • Uma subscrição Azure ativa com permissões para criar recursos.
  • A Azure CLI instalada e sessão iniciada com az login.
  • Um resource group para testar, por exemplo rg-demo.
  • Um editor de texto (o VS Code com a extensão Bicep ajuda, mas não é obrigatório).

Passo 1: Criar um ficheiro Bicep simples

Cria um ficheiro chamado main.bicep que declara um Storage Account. É este o recurso que o what-if vai analisar:

param location string = resourceGroup().location
param storageName string

resource sa 'Microsoft.Storage/storageAccounts@2023-01-01' = {
  name: storageName
  location: location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}

O nome de um Storage Account tem de ser único a nível global: só letras minúsculas e números, entre 3 e 24 caracteres.

Passo 2: Garantir que o resource group existe

O what-if precisa de um âmbito contra o qual comparar. Se ainda não tens onde testar, cria o resource group:

az group create --name rg-demo --location westeurope

Passo 3: Correr o what-if

Agora pede à Azure CLI para calcular a diferença entre o teu ficheiro e o que já existe no resource group. Como o Storage Account ainda não existe, o resultado deve ser uma criação:

az deployment group what-if --resource-group rg-demo --template-file main.bicep --parameters storageName=stbconceptsdemo01

O what-if envia o teu template para a Azure, que o compara com o estado atual e devolve apenas as diferenças. Nenhum recurso é alterado nesta fase. Substitui stbconceptsdemo01 por um nome livre que respeite as regras do Passo 1.

Passo 4: Ler o resultado

O what-if apresenta cada recurso com um símbolo e uma cor à frente. Estes são os que vais encontrar com mais frequência:

  • + Create: o recurso vai ser criado.
  • ~ Modify: o recurso já existe e vai mudar; a saída mostra propriedade a propriedade.
  • - Delete: o recurso vai ser removido.
  • = NoChange: fica exatamente igual.
  • ! Ignore: está fora do âmbito e não é tocado.

Nesta primeira execução deves ver uma linha começada por + com o caminho Microsoft.Storage/storageAccounts/stbconceptsdemo01, sinal de que a criação está pronta a avançar.

Passo 5: Provocar um Modify

Para veres o what-if a detetar uma mudança, faz primeiro o deploy real e só depois altera o ficheiro. Aplica o Bicep:

az deployment group create --resource-group rg-demo --template-file main.bicep --parameters storageName=stbconceptsdemo01

Abre o main.bicep e troca o SKU de Standard_LRS para Standard_GRS. Corre outra vez o comando do Passo 3: em vez de Create, deves ver agora ~ Modify, com a linha do sku.name a passar de um valor para o outro.

Verificar o resultado

Sabes que está a funcionar quando o resumo final do what-if reflete a tua intenção. A CLI termina com uma contagem do tipo Resource changes: 1 to create na primeira corrida e 1 to modify depois de mexeres no SKU. Se vires 0 to create, 0 to modify quando esperavas mudanças, confirma que estás a apontar para o resource group certo e que guardaste o ficheiro.

Conclusão

Com o what-if passas a ter uma pré-visualização fiável de cada deploy Bicep, o que reduz muito o risco de criar, alterar ou apagar algo sem querer. O passo seguinte natural é colocar este comando nos teus pipelines de CI/CD, para que cada Pull Request mostre o impacto na infraestrutura antes da aprovação. Uma dica para o dia a dia: usa az deployment group create --confirm-with-what-if para ver o diff e confirmar o deploy no mesmo comando. Em que ponto do teu fluxo de trabalho é que esta pré-visualização te daria mais tranquilidade?