The Infrastructure Developer's Guide to Terraform: Azure Edition

AVG Duration6h


With the increasing complexity of the public cloud, infrastructure as code with software development practices has become the recommended way to manage the cloud. Terraform is an open-source, cloud-agnostic tool that enables Cloud and DevOps Engineers to automate and maintain infrastructure with a powerful machine-friendly but human-readable syntax. This learning path contains a series of hands-on labs that will teach you how to build infrastructure using Terraform. An IDE browser is provided in each lab to write and deploy the Terraform code. Complete the challenge at the end to validate your Terraform skills.

Learning Objectives

The learning path teaches you how to perform the following in Terraform:

  • Deploy and destroy Azure infrastructure using Terraform
  • Use variables to create dynamic Terraform code
  • Creating conditional logic
  • How to create loops to scale infrastructure
  • Securely store Terraform state data
  • Develop modules to create reusable infrastructure code
  • Use Terragrunt to scale and enhance Terraform code
  • Write tests to validate Terraform configurations

Intended Audience

This learning path is intended for Cloud and DevOps Engineers.


You must have some experience with Azure fundamentals. If you want to familiarize yourself with Azure fundamentals, the following content is recommended before attempting the learning path:

Fundamentals of Azure  


If you have any feedback or suggestions relating to this learning path, feel free to contact us at  


Your certificate for this learning path

Training Content

Hands-on Lab - Beginner - 30m
Deploying Infrastructure with Terraform in Azure
Get started on your DevOps journey and learn how to build infrastructure on Azure using Terraform.
Hands-on Lab - Beginner - 1h
Creating Terraform Configurations with Implicit Dependencies in Azure
Following along in this hands on lab to discover the importance of resource dependencies in Terraform configurations.
Hands-on Lab - Beginner - 1h 40m
Creating Variables in Terraform Configurations in Azure
Follow along in this hand on lab and create re-usable infrastructure code with Terraform variables.
Hands-on Lab - Beginner - 30m
Using Provisioners with Terraform in Azure
Discover the use case of Terraform provisioners and learn when to use them in Terraform configurations.
Hands-on Lab - Beginner - 40m
Exploring Terraform State in Azure
Follow along in this hands-on lab and explore the concept of Terraform state when managing Azure infrastructure through code.
Hands-on Lab - Beginner - 43m
Using Terraform Remote State in Azure
Follow along with this hands on lab and configure remote state for Terraform configurations using an Azure Storage Account.
Hands-on Lab - Beginner - 45m
Creating Reusable Infrastructure with Terraform Modules in Azure
Follow along in this hands-on lab and create reusable infrastructure that can be versioned and tested with Terraform modules.
Hands-on Lab - Beginner - 40m
Importing Existing Infrastructure into Terraform in Azure
Follow along with this hands on lab and import existing Azure resources into a Terraform configuration to be managed by code.
Hands-on Lab - Intermediate - 40m
Integrating Conditional Logic into Terraform Configurations in Azure
Follow along with this hands-on lab and create a dynamic Terraform module by inserting conditional logic into the Terraform configuration.
Hands-on Lab - Intermediate - 40m
Creating Loops in Terraform and Scaling Resources in Azure
Follow along with this hands-on lab and create clean scalable Terraform code by using loops.
Hands-on Lab - Advanced - 40m
Keeping Terraform Remote State DRY with Terragrunt in Azure
Learn how to use Terragrunt to create separate Terraform environments with a remote state following DRY principles.
Hands-on Lab - Advanced - 40m
Passing Outputs Between Terraform Modules with Terragrunt in Azure
Learn advanced Terraform techniques by reducing the blast radius of critical infrastructure using Terragrunt to deploy an environment with separate Terraform states.
Hands-on Lab - Advanced - 40m
Creating DRY Terraform Environments with Terragrunt in Azure
Follow along in this hands-on lab and use Terragrunt to duplicate a Terraform environment and change the environment by modifying a single file.
Hands-on Lab - Advanced - 50m
Testing Terraform Code in Azure with Terratest
Develop a test to validate a Terraform module using Terratest, a popular Golang library for testing Terraform code.
Hands-on Lab Challenge - Advanced - 1h 30m
Deploy a Virtual Machine with Terraform Challenge
In this lab challenge, you will test your Terraform knowledge. You will be tasked with developing an infrastructure as code solution using Terraform by creating a configuration to create a Virtual Machine.
About the Author
Learning paths5

Luke is a Site Reliability Engineer at Microsoft. His background is infrastructure development using Terraform and in 2021 he was awarded the HashiCorp Ambassador award. He is an Azure DevOps Engineer Expert, Azure Administrator Associate, and HashiCorp Certified - Terraform Associate.