Use ARM Templates and Bicep Deployment Workflows for AZ-104

Read, modify, export, and deploy ARM templates and Bicep files with the level of fluency AZ-104 expects.

AZ-104 does not expect you to be a full-time infrastructure engineer, but it does expect you to read and adjust deployment definitions without getting lost. That is why ARM templates and Bicep appear in the official study guide.

What Microsoft explicitly tests

The core tasks are interpreting a template or Bicep file, modifying existing files, deploying resources, and exporting a deployment as an ARM template or converting an ARM template to Bicep. In other words, you need to understand deployment structure well enough to review, tweak, and execute it safely.

The right level of understanding

Know how parameters, variables, resources, outputs, and dependencies affect the result. Also understand the difference between an authored deployment file and a portal-exported template. Exported templates can help you inspect what Azure built, but they are not always the cleanest starting point for repeatable operations.

Common traps

Candidates often focus on syntax fragments instead of deployment intent. The better exam habit is to ask what the template is supposed to create, which values change between environments, and which resource dependencies must exist before the deployment can succeed.

Lab moves worth practicing

  • open a working Bicep file and change a parameter or SKU safely
  • deploy an ARM or Bicep file and confirm the result in the portal
  • export an existing deployment and compare it with a cleaner authored definition

What to notice first in a deployment file

ElementWhy it matters on AZ-104
ParametersThey show what changes safely between environments
Resource definitionsThey reveal what Azure will actually create or modify
DependenciesThey explain ordering and why a deployment may fail
OutputsThey show what values the deployment exposes for later use
Existing versus new resourcesThey help you distinguish extension of an environment from first creation

Mini Bicep example

The exam does not require deep Bicep authorship, but you should be comfortable reading a file like this and explaining what can change safely.

 1param storageAccountName string
 2param location string = resourceGroup().location
 3param skuName string = 'Standard_LRS'
 4
 5resource stg 'Microsoft.Storage/storageAccounts@2023-05-01' = {
 6  name: storageAccountName
 7  location: location
 8  sku: {
 9    name: skuName
10  }
11  kind: 'StorageV2'
12  properties: {
13    minimumTlsVersion: 'TLS1_2'
14    allowBlobPublicAccess: false
15  }
16}
17
18output blobEndpoint string = stg.properties.primaryEndpoints.blob

AZ-104-style questions usually care less about the syntax itself and more about what each block controls:

  • param values are the safe environment-specific levers
  • the resource block shows the Azure object being created
  • properties holds the operational defaults you are enforcing
  • output exposes a value another admin or deployment step may need

Exported template versus authored template

Portal-exported ARM templates are useful for inspection because they show how Azure sees the deployed state. Authored templates or Bicep files are usually cleaner for repeatable administration because they remove noise, make parameters clearer, and are easier to review over time. If the exam asks which file is better for consistent reuse, the cleaner authored definition is usually the stronger answer.

Quiz

Loading quiz…

Next, move to Virtual Machines, Disks, and Scale Sets so deployment logic connects to actual runtime administration.