0
0
Terraformcloud~20 mins

Creating your first resource in Terraform - Practice Exercises

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Terraform Resource Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Understanding Terraform resource blocks

Which of the following Terraform resource blocks correctly creates an AWS S3 bucket named my-unique-bucket-123?

A
resource "aws_s3_bucket" "bucket" {
  name = "my-unique-bucket-123"
  acl  = "public-read"
}
B
resource "aws_s3_bucket" "bucket" {
  bucket_name = "my-unique-bucket-123"
  acl         = "private"
}
C
resource "aws_s3_bucket" "bucket" {
  bucket = "my-unique-bucket-123"
  acl    = "private"
}
D
}
"etavirp" =    lca  
"321-tekcub-euqinu-ym" = tekcub  
{ "tekcub" "tekcub_3s_swa" ecruoser
Attempts:
2 left
💡 Hint

Look for the correct attribute name to specify the bucket's name and proper string syntax.

Configuration
intermediate
2:00remaining
Terraform variable usage in resource creation

Given the variable bucket_name defined as "example-bucket-456", which resource block correctly uses this variable to create an AWS S3 bucket?

Terraform
variable "bucket_name" {
  type    = string
  default = "example-bucket-456"
}
A
resource "aws_s3_bucket" "bucket" {
  bucket = var.bucket_name
  acl    = "private"
}
B
resource "aws_s3_bucket" "bucket" {
  bucket = "var.bucket_name"
  acl    = "private"
}
C
resource "aws_s3_bucket" "bucket" {
  bucket = "${var.bucket_name}"
  acl    = "private"
}
D
resource "aws_s3_bucket" "bucket" {
  bucket = $var.bucket_name
  acl    = "private"
}
Attempts:
2 left
💡 Hint

Terraform variables are referenced without quotes and without interpolation syntax in modern versions.

Architecture
advanced
2:00remaining
Choosing the right resource for infrastructure setup

You want to create a virtual machine in AWS using Terraform. Which resource type should you use to create an EC2 instance?

Aaws_virtual_machine
Baws_ec2_machine
Caws_vm
Daws_instance
Attempts:
2 left
💡 Hint

Look for the official Terraform AWS provider resource name for EC2 instances.

security
advanced
2:00remaining
Securing AWS S3 bucket with Terraform

Which Terraform resource block correctly creates an AWS S3 bucket with public access blocked?

A
resource "aws_s3_bucket" "bucket" {
  bucket = "secure-bucket-789"
  acl    = "private"

  public_access_block = true
}
B
resource "aws_s3_bucket" "bucket" {
  bucket = "secure-bucket-789"
  acl    = "private"

  public_access_block {
    block_public_acls       = true
    block_public_policy     = true
    ignore_public_acls      = true
    restrict_public_buckets = true
  }
}
C
resource "aws_s3_bucket" "bucket" {
  bucket = "secure-bucket-789"
  acl    = "private"

  block_public_acls       = true
  block_public_policy     = true
  ignore_public_acls      = true
  restrict_public_buckets = true
}
D
resource "aws_s3_bucket" "bucket" {
  bucket = "secure-bucket-789"
  acl    = "private"

  block_public_access = true
}
Attempts:
2 left
💡 Hint

Public access block settings are configured inside a nested block named public_access_block.

service_behavior
expert
2:00remaining
Terraform apply behavior with resource changes

You have a Terraform configuration that creates an AWS S3 bucket named my-bucket. You change the bucket name in the configuration to my-new-bucket and run terraform apply. What will happen?

Terraform
resource "aws_s3_bucket" "bucket" {
  bucket = "my-new-bucket"
  acl    = "private"
}
ATerraform will delete the old bucket named 'my-bucket' and create a new bucket named 'my-new-bucket'.
BTerraform will rename the existing bucket from 'my-bucket' to 'my-new-bucket' without downtime.
CTerraform will update the bucket name in place without deleting the old bucket.
DTerraform will throw an error because bucket names cannot be changed.
Attempts:
2 left
💡 Hint

Consider how Terraform handles changes to resource identifiers that are immutable in the cloud provider.