Skip to main content


·507 words·3 mins
Terraform-Professional - This article is part of a series.
Part 1: This Article

This is the start of a new blog series covering the Terraform Authoring and Operations Professional certification from HashiCorp, or more briefly put: the Terraform Professional certification. As with my other series covering HashiCorp product certifications I will structure this course around the exam objectives, where each post will cover one objective.

Speaking of other series, if you are new to Terraform you should start with the Terraform Associate certification:

I took part in the alpha testing of this exam when I was at HashiConf in San Francisco last year. The exam is performance based. You are dropped into a virtual environment where you are to perform tasks related to one or more Terraform configurations that you are given. I think the format is excellent, and I do prefer it over the usual multiple-choice questions type of certifications. I did have a huge disadvantage at the alpha testing, the environment used an American keyboard layout and my keyboard has the Swedish layout. I was unable to change the layout in the desktop environment, so I was having a bit of an issue finding the correct keys. I do hope that it will be possible to change keyboard layout in the real exam! But just to be sure I will practice with an American keyboard layout before I do the real exam.

An overview of the exam objectives is provided in the following table:

#Exam Objective
1Manage resource lifecycle
Initialize a configuration using terraform init and its options
Generate an execution plan using terraform plan and its options
Apply configuration changes using terraform apply and its options
Destroy resources using terraform destroy and its options
Manage resource state, including importing resources and reconciling resource drift
2Develop and troubleshoot dynamic configuration
Use language features to validate configuration
Query providers using data sources
Compute and interpolate data using HCL functions
Use meta-arguments in configuration
Configure input variables and outputs, including complex types
Analyze best practices for managing sensitive data, such as using Vault for secrets management
3Develop collaborative Terraform workflows
Manage the Terraform binary, providers, and modules using version constraints
Configure remote state
Use the Terraform workflow in automation
Share data across configurations and workspaces
4Create, maintain, and use Terraform modules
Create a module
Use a module in configuration
Refactor a module and use module versioning
Refactor an existing configuration into modules
5Configure and use Terraform providers
Understand Terraform’s plugin-based architecture
Configure providers, including aliasing, versioning, sourcing, and managing upgrades
Manage provider authentication
Troubleshoot provider errors
6Collaborate on infrastructure as code using HCP Terraform
Analyze the HCP Terraform run workflow
Understand HCP Terraform workspaces and their configuration options, including access management
Manage provider credentials in HCP Terraform
Analyze policy as code and governance features

I will assume you are familiar with the basics of Terraform to be able to follow along this series. If not, I refer you back to my series on the Terraform Associate certification.

In the next post in this series I will cover exam objective 1 “Manage resource lifecycle”.

Mattias Fjellström
Mattias Fjellström
Cloud architect consultant and an HashiCorp Ambassador
Terraform-Professional - This article is part of a series.
Part 1: This Article