Bird
Raised Fist0
Terraformcloud~20 mins

Terraform state list command - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Terraform State List Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ service_behavior
intermediate
1:30remaining
What does the command terraform state list output?

You run terraform state list in your Terraform project directory. What will this command show you?

AA list of all resources currently tracked in the Terraform state file.
BA list of all resources defined in the Terraform configuration files, regardless of state.
CA detailed JSON output of the current Terraform state file contents.
DA list of all Terraform modules used in the configuration.
Attempts:
2 left
💡 Hint

Think about what Terraform tracks after applying changes.

🧠 Conceptual
intermediate
1:30remaining
Which resource will NOT appear in the output of terraform state list?

Given a Terraform project with resources defined but not yet applied, which resource will NOT be listed by terraform state list?

AA resource imported into the state file.
BA resource applied and tracked in the state file.
CA resource defined in the configuration but never applied.
DA resource created by a module and applied.
Attempts:
2 left
💡 Hint

Think about what Terraform state tracks versus what is just defined.

❓ Configuration
advanced
2:00remaining
What is the output of terraform state list after applying this configuration?

Given this Terraform configuration:

resource "aws_s3_bucket" "bucket1" {
  bucket = "my-bucket-1"
}

resource "aws_s3_bucket" "bucket2" {
  bucket = "my-bucket-2"
}

You run terraform apply successfully, then run terraform state list. What is the output?

A
my-bucket-1
my-bucket-2
B
bucket1
bucket2
Caws_s3_bucket.bucket1
D
aws_s3_bucket.bucket1
aws_s3_bucket.bucket2
Attempts:
2 left
💡 Hint

Remember the format Terraform uses to identify resources in state list.

❓ security
advanced
1:30remaining
Which of these is a security risk when using terraform state list?

Consider you share your Terraform state file with others. Which risk is related to the output of terraform state list?

AIt reveals the exact resource names and types currently managed, which may expose infrastructure details.
BIt exposes sensitive resource attribute values like passwords or keys.
CIt allows unauthorized modification of the state file.
DIt automatically deletes resources not listed in the state.
Attempts:
2 left
💡 Hint

Think about what information the list command reveals.

❓ Architecture
expert
2:00remaining
How can you use terraform state list to identify resources managed by a specific module?

You have a Terraform state with multiple modules. You want to list only resources managed by the module named network. Which command will achieve this?

Aterraform state list --filter=module.network
Bterraform state list module.network
Cterraform state list | grep module.network
Dterraform state list -module=network
Attempts:
2 left
💡 Hint

Terraform state list accepts a resource address prefix to filter the output.

Practice

(1/5)
1. What does the terraform state list command do?
easy
A. It destroys all resources in the state.
B. It applies changes to the infrastructure.
C. It initializes the Terraform working directory.
D. It shows all resources managed by Terraform in the current state.

Solution

  1. Step 1: Understand the purpose of terraform state list

    This command lists all resources that Terraform currently manages in its state file.
  2. Step 2: Compare with other Terraform commands

    Other commands like apply, init, and destroy perform different actions, not listing resources.
  3. Final Answer:

    It shows all resources managed by Terraform in the current state. -> Option D
  4. Quick Check:

    List resources = D [OK]
Hint: Remember: 'state list' shows current managed resources [OK]
Common Mistakes:
  • Confusing 'state list' with 'apply' or 'destroy'
  • Thinking it initializes Terraform
  • Assuming it modifies resources
2. Which of the following is the correct syntax to list all resources in the Terraform state?
easy
A. terraform list state
B. terraform state list
C. terraform show state list
D. terraform state show list

Solution

  1. Step 1: Recall the correct command structure

    The correct command to list resources is terraform state list.
  2. Step 2: Identify incorrect syntax

    Options B, C, and D mix command parts incorrectly and will cause errors.
  3. Final Answer:

    terraform state list -> Option B
  4. Quick Check:

    Correct syntax = A [OK]
Hint: Command order: terraform + state + list [OK]
Common Mistakes:
  • Swapping 'state' and 'list' order
  • Adding extra words like 'show'
  • Using unsupported command combinations
3. Given the following Terraform state list output:
module.network.aws_vpc.main
module.network.aws_subnet.public
module.compute.aws_instance.web

What will terraform state list module.network.aws_subnet.public display?
medium
A. module.network.aws_subnet.public
B. module.compute.aws_instance.web
C. module.network.aws_vpc.main
D. No output

Solution

  1. Step 1: Understand filtering by resource name

    Using terraform state list with a resource name filters the output to matching resources.
  2. Step 2: Match the exact resource path

    The command matches module.network.aws_subnet.public exactly, so it will output that line.
  3. Final Answer:

    module.network.aws_subnet.public -> Option A
  4. Quick Check:

    Filtered list = C [OK]
Hint: Filter by full resource path to get exact match [OK]
Common Mistakes:
  • Expecting all resources to show
  • Confusing module paths
  • Assuming no output if filter is used
4. You run terraform state list module.app.aws_instance.web but get no output, even though you expect the resource to exist. What is the most likely cause?
medium
A. Terraform state list command does not support filtering.
B. Terraform state file is empty and no resources exist.
C. The resource name or module path is incorrect or misspelled.
D. You need to run terraform apply first.

Solution

  1. Step 1: Check the resource path correctness

    If no output appears, the resource path or name likely does not match any resource in the state.
  2. Step 2: Understand filtering behavior

    The terraform state list command supports filtering by resource name or module path.
  3. Final Answer:

    The resource name or module path is incorrect or misspelled. -> Option C
  4. Quick Check:

    Incorrect path = B [OK]
Hint: Check spelling and module path carefully when filtering [OK]
Common Mistakes:
  • Assuming filtering is unsupported
  • Thinking state file is always empty
  • Believing apply is needed to list state
5. You want to list all resources managed by Terraform inside the module database only. Which command will correctly show this filtered list?
hard
A. terraform state list module.database
B. terraform state list database
C. terraform state list module.database.*
D. terraform state list module/database

Solution

  1. Step 1: Understand module path filtering

    To filter resources inside a module, use the full module path prefix like module.database.
  2. Step 2: Check command syntax

    terraform state list module.database uses the correct prefix without extra characters. terraform state list module.database.* uses a wildcard which is not supported in this command.
  3. Final Answer:

    terraform state list module.database -> Option A
  4. Quick Check:

    Filter by module prefix = A [OK]
Hint: Use full module path prefix without wildcards to filter [OK]
Common Mistakes:
  • Using wildcards which are unsupported
  • Omitting 'module.' prefix
  • Using partial or incorrect module names