Bird
Raised Fist0
Terraformcloud~10 mins

Terraform import command - Step-by-Step Execution

Choose your learning style10 modes available
Process Flow - Terraform import command
Start: Existing Resource
↓
Run terraform import
↓
Terraform maps resource to state
↓
State file updated
↓
Terraform can now manage resource
↓
End
The terraform import command links an existing resource to Terraform's state, allowing Terraform to manage it.
Execution Sample
Terraform
terraform import aws_instance.example i-1234567890abcdef0
Imports an existing AWS EC2 instance with ID i-1234567890abcdef0 into Terraform state as aws_instance.example.
Process Table
StepActionInputTerraform State ChangeResult
1Identify existing resourceAWS EC2 instance ID i-1234567890abcdef0No change yetReady to import
2Run terraform import commandterraform import aws_instance.example i-1234567890abcdef0Maps aws_instance.example to resource IDState file updated with resource
3Terraform state updatedResource linked in state fileState file now tracks aws_instance.exampleTerraform can manage resource
4Verify importterraform planChecks resource matches configurationNo changes if config matches
5ExitImport completeState file updatedTerraform manages existing resource
💡 Import completes when resource is linked in Terraform state and ready for management.
Status Tracker
VariableStartAfter Step 2After Step 3Final
Terraform StateEmpty or without resourceResource aws_instance.example mappedState file updated with resource detailsState tracks aws_instance.example
Key Moments - 3 Insights
Why doesn't terraform import create a resource?
Terraform import only links existing resources to the state; it does not create or modify resources. See execution_table step 2 where the resource is mapped but not created.
What happens if the Terraform configuration does not match the imported resource?
Terraform plan after import (step 4) will show differences and may propose changes to match the configuration.
Does terraform import update the configuration files?
No, terraform import only updates the state file. Configuration files must be written manually to match the imported resource.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, at which step is the Terraform state file updated?
AStep 1
BStep 4
CStep 2
DStep 5
💡 Hint
Check the 'Terraform State Change' column in execution_table rows.
According to variable_tracker, what is the state of Terraform State after step 3?
AState file updated with resource details
BResource aws_instance.example mapped
CEmpty or without resource
DState tracks aws_instance.example
💡 Hint
Look at the 'After Step 3' column for Terraform State in variable_tracker.
If the configuration file does not match the imported resource, what will terraform plan show?
ANo changes
BProposed changes to match configuration
CError and stops
DDeletes the resource
💡 Hint
Refer to key_moments about what happens after import when config differs.
Concept Snapshot
terraform import <resource> <id>

Links an existing resource to Terraform state.
Does NOT create or modify resources.
Updates state file only.
Configuration files must match resource manually.
Run terraform plan to verify after import.
Full Transcript
The terraform import command is used to bring an existing cloud resource under Terraform management by linking it to the Terraform state file. It does not create or change the resource itself. The process starts by identifying the existing resource, then running the import command with the resource address and ID. Terraform updates its state file to track the resource. After import, running terraform plan helps verify if the configuration matches the imported resource. If there are differences, Terraform will propose changes. Import only affects the state file; configuration files must be written manually to reflect the resource. This allows Terraform to manage resources created outside Terraform.

Practice

(1/5)
1. What is the main purpose of the terraform import command?
easy
A. To connect existing cloud resources to Terraform management
B. To create new resources in the cloud
C. To delete resources managed by Terraform
D. To update Terraform version

Solution

  1. Step 1: Understand the command's role

    The terraform import command is used to bring existing resources under Terraform's control without recreating them.
  2. Step 2: Differentiate from other commands

    Unlike commands that create or delete resources, import only connects existing ones to Terraform state.
  3. Final Answer:

    To connect existing cloud resources to Terraform management -> Option A
  4. Quick Check:

    Import = Connect existing resources [OK]
Hint: Import links existing resources to Terraform state [OK]
Common Mistakes:
  • Thinking import creates new resources
  • Confusing import with terraform apply
  • Assuming import deletes resources
2. Which of the following is the correct syntax to import an AWS S3 bucket named my-bucket into Terraform resource aws_s3_bucket.example?
easy
A. terraform import my-bucket aws_s3_bucket.example
B. terraform import aws_s3_bucket.example my-bucket
C. terraform import aws_s3_bucket.example aws_s3_bucket.my-bucket
D. terraform import example aws_s3_bucket.my-bucket

Solution

  1. Step 1: Identify correct command order

    The syntax is terraform import <resource_address> <resource_id>. Here, resource address is aws_s3_bucket.example and ID is my-bucket.
  2. Step 2: Match options to syntax

    terraform import aws_s3_bucket.example my-bucket matches the correct order: resource address first, then resource ID.
  3. Final Answer:

    terraform import aws_s3_bucket.example my-bucket -> Option B
  4. Quick Check:

    Import syntax = resource_address resource_id [OK]
Hint: Remember: import <resource_address> <resource_id> [OK]
Common Mistakes:
  • Swapping resource address and ID
  • Using resource type instead of address
  • Adding extra prefixes to resource ID
3. Given this Terraform import command:
terraform import aws_instance.web i-1234567890abcdef0
What will Terraform do after running this command?
medium
A. Create a new AWS instance with ID i-1234567890abcdef0
B. Delete the AWS instance i-1234567890abcdef0
C. Add the existing AWS instance i-1234567890abcdef0 to Terraform state under aws_instance.web
D. Update the AWS instance i-1234567890abcdef0 with Terraform configuration

Solution

  1. Step 1: Understand import effect on state

    The import command adds an existing resource to Terraform's state file without creating or deleting it.
  2. Step 2: Clarify what happens to the resource

    The resource remains unchanged in the cloud; Terraform just tracks it as aws_instance.web.
  3. Final Answer:

    Add the existing AWS instance i-1234567890abcdef0 to Terraform state under aws_instance.web -> Option C
  4. Quick Check:

    Import adds resource to state, no creation or deletion [OK]
Hint: Import updates state, not cloud resources [OK]
Common Mistakes:
  • Thinking import creates or deletes resources
  • Assuming import applies configuration changes
  • Confusing import with terraform apply
4. You ran terraform import aws_s3_bucket.example my-bucket but got an error: Resource aws_s3_bucket.example not found in configuration. What is the likely cause?
medium
A. The import command syntax is incorrect
B. The bucket my-bucket does not exist in AWS
C. Terraform version is outdated
D. The resource aws_s3_bucket.example is missing in Terraform files

Solution

  1. Step 1: Analyze error message

    The error says the resource address is not found in configuration, meaning Terraform files lack aws_s3_bucket.example.
  2. Step 2: Confirm resource presence

    Before import, Terraform must know the resource block to map the imported resource correctly.
  3. Final Answer:

    The resource aws_s3_bucket.example is missing in Terraform files -> Option D
  4. Quick Check:

    Resource must exist in config before import [OK]
Hint: Define resource in config before importing [OK]
Common Mistakes:
  • Ignoring missing resource block
  • Assuming import creates resource block
  • Blaming AWS resource existence first
5. You imported an existing AWS security group with terraform import aws_security_group.sg sg-0a1b2c3d4e5f6g7h8. After import, your Terraform configuration does not match the actual security group rules. What should you do next?
hard
A. Manually update your Terraform configuration to match the imported resource
B. Run terraform apply immediately to fix the resource
C. Delete the imported resource from state and re-import
D. Nothing, Terraform will auto-sync configuration

Solution

  1. Step 1: Understand import limitations

    Import adds the resource to state but does not update Terraform files to reflect actual settings.
  2. Step 2: Align configuration with reality

    You must manually edit Terraform configuration to match the imported resource's current rules to avoid unwanted changes on apply.
  3. Final Answer:

    Manually update your Terraform configuration to match the imported resource -> Option A
  4. Quick Check:

    Update config after import to match resource [OK]
Hint: Edit config to match imported resource before apply [OK]
Common Mistakes:
  • Expecting terraform apply to fix config automatically
  • Deleting and re-importing unnecessarily
  • Ignoring config mismatch risks
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard