Deploy a Storage Account with ARM Templates
Write and deploy an ARM template to create a Storage Account with a blob container. Apply your knowledge of parameters, variables, and nested resources.

Lab overview
Azure Resource Manager (ARM) templates are a declarative Infrastructure as Code (IaC) solution for defining, deploying, and managing Azure resources using JSON. Rather than clicking through the Azure Portal, you describe the desired end state of your infrastructure in a template file, and Azure Resource Manager works out how to reach it. Templates are idempotent, so deploying the same file twice produces the same result, and they can be version-controlled, peer-reviewed, and promoted through environments like any other source code.
A template's power comes from its parameters, variables, and template functions. Parameters make a single template reusable across environments, variables keep repeated expressions in one place, and functions like concat() and uniqueString() generate deterministic values at deployment time, which matters for Azure services such as Storage that require globally unique names. Nested and dependent resources let a single template provision a parent resource and its children, so a Storage Account and its blob containers are created together as one coherent unit.
Objectives
By completing this Intermediate challenge, you will be able to:
- Author an ARM template with a valid schema, parameters, variables, resources, and outputs.
- Define parameters with explicit types and default values for reusable configuration.
- Generate globally unique resource names using the
concat()anduniqueString()template functions. - Provision an Azure Storage Account with a nested blob container resource.
- Deploy an ARM template to a resource group using the Azure CLI and verify the result.
Prerequisites
Before attempting this challenge, you should be comfortable with:
- ARM template structure (schema, contentVersion, parameters, variables, resources, outputs)
- Defining parameters with types and default values
- Using template functions like
concat()anduniqueString() - Deploying templates with Azure CLI
- Understanding nested and dependent resources
Recommended Labs:
Verified against your live environment
An automated validation engine inspects your actual resources and configurations as you work. Completion means the task was performed — not multiple choice, real-world proficiency.
More labs like this
Deploy a Full Azure Environment Using Bicep Infrastructure as Code
Write modular Bicep templates to deploy a VNet, App Service, SQL Database, and Key Vault, then deploy the full environment using Azure CLI.
Getting Started with Azure Storage Account: Create and Manage Blob Storage
Learn to create an Azure Storage Account, set up blob containers, manage access levels, and upload files using the Azure Portal.
Managing Azure Blob Storage Operations with Azure CLI
Learn how to perform essential Azure Blob Storage operations using Azure CLI commands. Practice uploading, downloading, listing, and deleting blobs with batch operations.
Related reading
Environment
Every lab includes
- Real environment, pre-credentialed
- Automated checks on every step
- Isolated sandbox, auto cleanup
- AI-recommended next steps
Lab curriculum
- 01
Challenge Scenario
3 automated checks
Skills validated
Not the lab you were looking for?
Browse 150+ hands-on labs across AWS, Azure, Kubernetes, Docker, and cloud security.