What happens when you deploy One command, and the halves either side of the dashed line are very different YOUR MACHINE main.bicep what you wrote transpile ARM JSON in memory, not a file The Azure CLI ships the Bicep compiler. This step needs no network and no login: it is pure text in, text out. Want to see the JSON? Run it yourself: az bicep build --file main.bicep --stdout Functions are not resolved here. resourceGroup().location survives into the JSON as an expression for Azure to evaluate. HTTPS AZURE Azure Resource Manager management.azure.com Compare with what already exists create, update, or leave alone Your resources storage account Deployment record the Deployments blade Azure never sees your .bicep file. It receives JSON, and it decides what to change. That second half is why a re-deploy is safe, and why the preview can exist at all.