Bird
Raised Fist0
Terraformcloud~5 mins

Terraform apply -replace flag - Cheat Sheet & Quick Revision

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
Recall & Review
beginner
What does the -replace flag do in terraform apply?
The -replace flag forces Terraform to destroy and recreate a specific resource during the apply process.
Click to reveal answer
beginner
How do you specify a resource to replace using the -replace flag?
You specify the resource address, like -replace=aws_instance.example, to tell Terraform which resource to recreate.
Click to reveal answer
intermediate
Why would you use the -replace flag instead of manually deleting a resource?
Using -replace lets Terraform handle the destruction and recreation safely, keeping the state consistent and avoiding manual errors.
Click to reveal answer
intermediate
Can you replace multiple resources in one terraform apply command?
Yes, you can use multiple -replace flags to replace several resources at once.
Click to reveal answer
advanced
What happens if you use -replace on a resource that does not exist in the state?
Terraform will show an error because it cannot replace a resource that is not tracked in the state.
Click to reveal answer
What is the main purpose of the -replace flag in terraform apply?
ATo force recreation of a resource
BTo skip a resource during apply
CTo update Terraform version
DTo backup the state file
How do you specify which resource to replace?
ABy resource ID in the cloud provider
BBy resource tag
CBy resource name in the configuration file
DBy resource address in Terraform state
Can you replace multiple resources in one command?
AYes, by using multiple <code>-replace</code> flags
BYes, by listing resources separated by commas
CNo, only one resource at a time
DNo, you must run separate apply commands
What happens if you try to replace a resource not in the state?
ATerraform creates a new resource
BTerraform shows an error
CTerraform ignores it
DTerraform deletes all resources
Why is using -replace safer than manually deleting a resource?
AIt updates the provider automatically
BIt backs up the resource
CIt keeps Terraform state consistent
DIt speeds up apply time
Explain how the -replace flag works in terraform apply and when you might use it.
Think about how Terraform manages resources and state.
You got /4 concepts.
    Describe the steps Terraform takes when you run terraform apply -replace=resource.address.
    Focus on the lifecycle of the resource during apply.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the -replace flag do when used with terraform apply?
      easy
      A. Only plans changes without applying them
      B. Skips the creation of new resources
      C. Forces Terraform to destroy and recreate a specific resource
      D. Updates all resources without destroying any

      Solution

      1. Step 1: Understand the purpose of the -replace flag

        The -replace flag tells Terraform to destroy and recreate a specific resource during apply.
      2. Step 2: Compare with other apply behaviors

        Normally, Terraform updates resources in place if possible, but -replace forces full replacement of the targeted resource.
      3. Final Answer:

        Forces Terraform to destroy and recreate a specific resource -> Option C
      4. Quick Check:

        -replace flag = force resource replacement [OK]
      Hint: Remember: -replace means rebuild that resource only [OK]
      Common Mistakes:
      • Thinking -replace updates resources in place
      • Confusing -replace with plan-only mode
      • Assuming it affects all resources
      2. Which of the following is the correct syntax to replace a resource named aws_instance.example using Terraform apply?
      easy
      A. terraform apply -replace=aws_instance.example
      B. terraform apply --replace aws_instance.example
      C. terraform apply -replace aws_instance.example
      D. terraform apply -replace=aws_instance.example.id

      Solution

      1. Step 1: Recall the correct flag syntax

        The correct syntax uses an equals sign with the resource address: -replace=resource_address.
      2. Step 2: Check the resource address format

        The resource address is aws_instance.example, so the correct command is terraform apply -replace=aws_instance.example.
      3. Final Answer:

        terraform apply -replace=aws_instance.example -> Option A
      4. Quick Check:

        Correct syntax uses '=' with resource address [OK]
      Hint: Use '=' directly after -replace with resource name [OK]
      Common Mistakes:
      • Using space instead of '=' after -replace
      • Adding extra flags like --replace
      • Appending .id unnecessarily
      3. Given this Terraform command:
      terraform apply -replace=aws_s3_bucket.mybucket
      What will happen to the resource aws_s3_bucket.mybucket during apply?
      medium
      A. It will be updated in place without destruction
      B. It will be ignored and left unchanged
      C. Terraform will only plan changes but not apply
      D. It will be destroyed and recreated

      Solution

      1. Step 1: Understand the effect of -replace on a resource

        The -replace flag forces Terraform to destroy and recreate the specified resource during apply.
      2. Step 2: Apply this to aws_s3_bucket.mybucket

        Since the command targets aws_s3_bucket.mybucket, Terraform will destroy and then recreate this bucket.
      3. Final Answer:

        It will be destroyed and recreated -> Option D
      4. Quick Check:

        -replace causes destroy and recreate [OK]
      Hint: Replace means destroy then create that resource [OK]
      Common Mistakes:
      • Thinking it updates resource without destruction
      • Assuming it skips the resource
      • Confusing apply with plan
      4. You run terraform apply -replace=aws_instance.web but get an error: Invalid resource address. What is the most likely cause?
      medium
      A. The resource name is misspelled or does not exist in the state
      B. The -replace flag cannot be used with aws_instance resources
      C. You forgot to run terraform init before apply
      D. The command requires a space instead of '=' after -replace

      Solution

      1. Step 1: Analyze the error message

        An 'Invalid resource address' error means Terraform cannot find the resource in the state or the address is wrong.
      2. Step 2: Check resource existence and spelling

        Most likely, the resource aws_instance.web is misspelled or not present in the current Terraform state.
      3. Final Answer:

        The resource name is misspelled or does not exist in the state -> Option A
      4. Quick Check:

        Invalid address = wrong or missing resource name [OK]
      Hint: Check resource name spelling and state presence first [OK]
      Common Mistakes:
      • Assuming -replace flag is invalid for resource types
      • Thinking terraform init fixes resource address errors
      • Using space instead of '=' causes different errors
      5. You want to replace two resources, aws_instance.web and aws_security_group.sg, in a single apply command. Which is the correct way to do this?
      hard
      A. terraform apply -replace=aws_instance.web,aws_security_group.sg
      B. terraform apply -replace=aws_instance.web -replace=aws_security_group.sg
      C. terraform apply -replace=aws_instance.web aws_security_group.sg
      D. terraform apply -replace aws_instance.web -replace aws_security_group.sg

      Solution

      1. Step 1: Understand multiple -replace usage

        Terraform allows multiple -replace flags, each specifying one resource to replace.
      2. Step 2: Evaluate each option

        terraform apply -replace=aws_instance.web -replace=aws_security_group.sg uses two separate -replace flags correctly. terraform apply -replace=aws_instance.web,aws_security_group.sg uses a comma which is invalid. Options C and D use incorrect syntax without '=' or with spaces.
      3. Final Answer:

        terraform apply -replace=aws_instance.web -replace=aws_security_group.sg -> Option B
      4. Quick Check:

        Use multiple -replace flags for multiple resources [OK]
      Hint: Use one -replace= per resource to replace multiple [OK]
      Common Mistakes:
      • Trying to list multiple resources with commas
      • Using spaces instead of '=' after -replace
      • Combining resources in one -replace flag