Variables

This lesson will address Terraform variables and their uses.

Terraform variables#

A variable in Terraform is something that can be set at runtime. It allows you to vary what Terraform will do by passing in or using a dynamic value.

Our first Variable#

Let’s dive into an example of how to use variables so we can learn how they work:

Our first Terraform variable project example

You declare a variable by using the keyword variable, and then specify the identifier for the variable in quotes. We are using "bucket_name" as the identifier. Inside the variable block, we add a description to describe to the user what this variable is used for. The description parameter is completely optional. We could have defined the variable as follows:

variable "bucket_name" {}

📝Note: It is often a good idea to provide a description as it gives the user some indication as to what values to use and what the variable is used for.

To use the value of a variable in our Terraform code, we use the syntax var.<variable_identifier>. We set the bucket property on the aws_s3_bucket resource to the value of our variable var.bucket_name. This means that Terraform will use whatever value we give our variable as the name of the S3 bucket.

Running the project#

After clicking the terminal, terraform init and terraform apply will run. Terraform will then pause and you will see the following output:

This code requires the following environment variables to execute:
access_key_id
Not Specified...
secret_access_key
Not Specified...
Terminal 1
Terminal

Click to Connect...

Terraform has paused because it is asking you to provide a value for the variable. The variable name is printed to the screen and underneath is the description we provided.

📝Note: If you do not set a description, only the variable name will be shown here.

Steps you should follow to run the project:

  • Type in a bucket name that you think will be unique. I used kevholditch-variable-bucket but it really doesn’t matter what value you use.

  • Press enter. You will notice that Terraform will pause again and ask if you want to apply the changes.

  • Type yes and create the bucket. Terraform will have created the bucket with a name of whatever value you gave it.

Destroy the project#

Once you have run the project go ahead and destroy it again:

  • Run terraform destroy.

    Terraform will ask you for a value for the variable again. It doesn’t actually matter what value you give it this time as the variable is not needed for Terraform to destroy the bucket.

  • Press enter and then type yes when Terraform asks you if you really want to destroy the project.

🎉Quiz
Variable Defaults
Mark as Completed
Report an Issue