Bird
Raised Fist0
Azurecloud~10 mins

ARM template parameters and variables in Azure - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to define a parameter named 'location' in an ARM template.

Azure
"parameters": {
  "location": {
    "type": "[1]"
  }
}
Drag options to blanks, or click blank then click option'
Aint
Bbool
Cstring
Darray
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'int' or 'bool' for a text parameter causes errors.
Forgetting to specify the type.
2fill in blank
medium

Complete the code to define a variable named 'storageAccountName' that concatenates 'storage' and a unique string.

Azure
"variables": {
  "storageAccountName": "concat('storage', [1])"
}
Drag options to blanks, or click blank then click option'
Aparameters('location')
BuniqueString(resourceGroup().id)
CresourceGroup().name
Dsubscription().id
Attempts:
3 left
💡 Hint
Common Mistakes
Using parameters or subscription ID directly without uniqueness.
Using resourceGroup().name which may not be unique.
3fill in blank
hard

Fix the error in the variable definition that tries to get the first element of a parameter array named 'vmSizes'.

Azure
"variables": {
  "firstVmSize": "[1](parameters('vmSizes'), 0)"
}
Drag options to blanks, or click blank then click option'
Aindex
Bfirst
Cparameters
Dparameters('vmSizes')[0]
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'first' which is not a valid ARM function.
Trying to use array indexing syntax directly.
4fill in blank
hard

Fill both blanks to define a parameter 'adminUsername' with a default value and a variable 'adminUser' that references it.

Azure
"parameters": {
  "adminUsername": {
    "type": "[1]",
    "defaultValue": "azureuser"
  }
},
"variables": {
  "adminUser": "[2]('adminUsername')"
}
Drag options to blanks, or click blank then click option'
Astring
Bint
Cparameters
Dvariables
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'int' as parameter type for a username.
Using 'variables' function to reference parameters.
5fill in blank
hard

Fill all three blanks to define a variable 'fullName' that combines 'firstName' and 'lastName' parameters with a space.

Azure
"variables": {
  "fullName": "concat([1]('firstName'), [2], [3]('lastName'))"
}
Drag options to blanks, or click blank then click option'
Aparameters
B' '
Dvariables
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'variables' function instead of 'parameters'.
Forgetting to add space between names.

Practice

(1/5)
1.

What is the main purpose of parameters in an ARM template?

easy
A. To define the resources to deploy
B. To allow input values when deploying the template
C. To store fixed values inside the template
D. To specify deployment location only

Solution

  1. Step 1: Understand parameters role

    Parameters let users provide input values at deployment time, making templates flexible.
  2. Step 2: Differentiate from variables

    Variables store fixed or computed values inside the template, not input values.
  3. Final Answer:

    To allow input values when deploying the template -> Option B
  4. Quick Check:

    Parameters = input values [OK]
Hint: Parameters accept inputs during deployment, variables do not [OK]
Common Mistakes:
  • Confusing parameters with variables
  • Thinking parameters define resources
  • Assuming parameters are fixed values
2.

Which of the following is the correct syntax to declare a variable named storageAccountName in an ARM template?

{
  "variables": {
    "storageAccountName": "myStorage"
  }
}
easy
A. "resources": { "storageAccountName": "myStorage" }
B. "parameters": { "storageAccountName": "myStorage" }
C. "variables": { "storageAccountName": "myStorage" }
D. "outputs": { "storageAccountName": "myStorage" }

Solution

  1. Step 1: Identify variable declaration section

    Variables are declared inside the "variables" section as key-value pairs.
  2. Step 2: Match syntax with example

    The example shows "variables": { "storageAccountName": "myStorage" }, which matches "variables": { "storageAccountName": "myStorage" }.
  3. Final Answer:

    "variables": { "storageAccountName": "myStorage" } -> Option C
  4. Quick Check:

    Variables declared under "variables" [OK]
Hint: Variables go inside "variables" block, not parameters or resources [OK]
Common Mistakes:
  • Putting variables inside parameters
  • Confusing variables with outputs
  • Using wrong JSON section names
3.

Given this ARM template snippet, what will be the value of variables('fullName')?

{
  "parameters": {
    "firstName": { "type": "string", "defaultValue": "John" },
    "lastName": { "type": "string", "defaultValue": "Doe" }
  },
  "variables": {
    "fullName": "[concat(parameters('firstName'), ' ', parameters('lastName'))]"
  }
}
medium
A. parameters('firstName') parameters('lastName')
B. JohnDoe
C. [concat(parameters('firstName'), ' ', parameters('lastName'))]
D. John Doe

Solution

  1. Step 1: Understand concat function in variables

    The variable "fullName" uses concat to join firstName, a space, and lastName.
  2. Step 2: Substitute default parameter values

    firstName = "John", lastName = "Doe", so concat("John", " ", "Doe") = "John Doe".
  3. Final Answer:

    John Doe -> Option D
  4. Quick Check:

    concat with space joins names [OK]
Hint: concat joins strings; default parameters fill in values [OK]
Common Mistakes:
  • Taking concat as literal string
  • Ignoring space between names
  • Confusing parameters with variables
4.

Identify the error in this ARM template snippet:

{
  "parameters": {
    "location": { "type": "string" }
  },
  "variables": {
    "region": "parameters('location')"
  }
}
medium
A. Missing square brackets around the parameter reference in variable
B. Variable names cannot be 'region'
C. Parameter type must be 'securestring' to use in variables
D. Variables cannot reference parameters

Solution

  1. Step 1: Check variable referencing syntax

    Variables referencing parameters must use expression syntax with square brackets: "[parameters('location')]".
  2. Step 2: Identify missing brackets

    The variable "region" is assigned "parameters('location')" as a string, not an expression.
  3. Final Answer:

    Missing square brackets around the parameter reference in variable -> Option A
  4. Quick Check:

    Parameter references need [ ] in variables [OK]
Hint: Use [parameters('name')] inside variables, not plain strings [OK]
Common Mistakes:
  • Omitting square brackets for expressions
  • Thinking variables can't use parameters
  • Wrong parameter types for variables
5.

You want to create an ARM template that deploys a storage account with a name based on a parameter prefix and a variable uniqueString. Which is the best way to combine them in the template?

{
  "parameters": {
    "prefix": { "type": "string" }
  },
  "variables": {
    "uniqueString": "[uniqueString(resourceGroup().id)]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "name": "???",
      "apiVersion": "2022-09-01",
      "location": "[resourceGroup().location]"
    }
  ]
}

Choose the correct expression to use for the storage account name property.

hard
A. "[concat(parameters('prefix'), variables('uniqueString'))]"
B. "parameters('prefix') + variables('uniqueString')"
C. "[parameters('prefix') variables('uniqueString')]"
D. "concat(parameters.prefix, variables.uniqueString)"

Solution

  1. Step 1: Understand ARM template expression syntax

    Expressions must be inside square brackets and use functions like concat() to join strings.
  2. Step 2: Check correct usage of parameters and variables

    Use parameters('name') and variables('name') inside concat() within brackets.
  3. Step 3: Evaluate options

    "[concat(parameters('prefix'), variables('uniqueString'))]" uses correct syntax: "[concat(parameters('prefix'), variables('uniqueString'))]".
  4. Final Answer:

    "[concat(parameters('prefix'), variables('uniqueString'))]" -> Option A
  5. Quick Check:

    Use [concat(parameters('x'), variables('y'))] for combined names [OK]
Hint: Use [concat(parameters('x'), variables('y'))] for combined strings [OK]
Common Mistakes:
  • Using + instead of concat inside brackets
  • Omitting square brackets for expressions
  • Wrong syntax for parameters or variables
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard